awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
emacs-lsp avatar

emacs-lsp/lsp-mode

0
View on GitHub↗
5,060 stars·962 forks·Emacs Lisp·gpl-3.0·19 viewsemacs-lsp.github.io/lsp-mode↗

Lsp Mode

lsp-mode is a Language Server Protocol client and IDE feature set for Emacs. It functions as a semantic code analysis tool and JSON-RPC communication layer that connects the editor to external language servers to provide intelligent code completion and real-time diagnostics.

The project also serves as a Debug Adapter Protocol client, enabling interactive debugging sessions and breakpoint management. This allows for stepping through code and inspecting variables via a standardized protocol, including support for debugging within Docker containers.

The system covers a broad range of development capabilities, including project-wide code navigation, automated refactoring, and real-time linting. It provides visual aids such as breadcrumbs, symbol trees, and semantic highlighting, while offering automated code formatting and the ability to install and verify language server binaries.

Features

  • Language Server Integrations - Implements the Language Server Protocol to connect Emacs to external servers for real-time code intelligence.
  • Editor LSP JSON-RPC Clients - Provides the JSON-RPC communication layer necessary for asynchronous messaging between the editor and language servers.
  • Semantic Code Analyzers - Facilitates semantic analysis of source code to resolve symbols, find references, and apply real-time linting.
  • Code Action Providers - Offers context-sensitive code corrections and automated refactoring suggestions for specific lines of code.
  • Code Completion - Suggests completions for symbols and identifiers as the user types by integrating with a completion frontend.
  • Code Navigators - Enables jumping between definitions and references while visualizing symbol hierarchies across the project.
  • Automated Code Refactoring - Executes automated structural changes to code based on server-provided refactoring suggestions.
  • Debugger Protocol Integrations - Implements a client for the Debug Adapter Protocol to decouple the editor from specific debugger implementations.
  • Debugging Protocols - Implements a standardized communication protocol to decouple the editor interface from specific debugger engines.
  • Definition Navigation - Enables jumping directly from a symbol usage to its definition within the project.
  • Language Server Protocol Clients - Integrates language servers into Emacs for completion, navigation, and diagnostics via LSP.
  • Code Inspection Clients - Queries language servers to retrieve symbols, definitions, and diagnostics for real-time code inspection.
  • Real-Time Code Diagnostics - Scans source code continuously to identify syntax errors and linting warnings in real time.
  • Symbol Navigation - Provides comprehensive symbol navigation, including jumps to definitions and references across the project.
  • DAP Protocol Clients - Functions as a DAP client to launch debug sessions, manage breakpoints, and step through code.
  • Code Formatting - Organizes code layout based on configuration settings through automated formatting.
  • On-Save Formatting - Automatically applies file formatting and fixes all auto-fixable issues upon saving the buffer.
  • Automated Code Fixes - Executes automated corrections for identified errors and warnings through server-provided code actions.
  • Inline Completions - Displays completion suggestions directly in the text stream while the user is idle.
  • Inline Symbol Overlays - Shows diagnostics, hover messages, and available code actions directly on the current line.
  • Code Formatting Tools - Automatically applies consistent styling and formatting rules to source code during the save process.
  • Code Visualizers - Visualizes the relationship between types and symbols through graphical representations of code hierarchy.
  • Debug Configuration Templates - Uses predefined launch schemas to map local host paths to remote or containerized environments for debugging.
  • Editor-Integrated Debugging - Integrates debugging tools directly into the editor to manage breakpoints and inspect errors.
  • Inlay Hint Renderers - Displays inline virtual text for parameter names and inferred types to provide immediate code context.
  • Emacs Extensions - Provides a comprehensive set of editor enhancements for Emacs, including breadcrumbs and symbol trees.
  • Automatic Signature Help Displays - Automatically displays function parameter hints and signatures as the user types a function call.
  • IDE Extension Features - Provides professional development capabilities like semantic navigation and automated refactoring through IDE extension features.
  • Breakpoint Debugging - Allows halting execution at breakpoints, inspecting variable state, and stepping through code via a debug adapter.
  • Structural Code Navigation - Generates code outlines and structural navigation to help users understand the hierarchy of the current file.
  • Hover Information Displays - Displays hover information, full documentation, and function signatures for the symbol at point.
  • Symbol Searchers - Allows querying and locating specific identifiers across a single project or multiple workspaces.
  • Symbol Tree Navigators - Provides a navigable symbol tree to allow quick movement between structures within a buffer.
  • LSP Error Explanations - Shows detailed diagnostic information and corrective advice from the language server to resolve errors.
  • Remote Debugging Protocols - Uses standardized protocols to communicate with remote debug agents for process execution control and memory inspection.
  • DAP Debug Sessions - Launches debug sessions and manages breakpoints using the Debug Adapter Protocol.
  • Peek Definitions - Allows users to peek at symbol definitions and references in a temporary window without leaving the current file.
  • Documentation Hover Frames - Renders documentation and function signatures in independent child frames to avoid disrupting the main editor buffer.
  • Server Session Isolation - Maintains separate server instances and state for each open project to ensure isolated language contexts.
  • Symbol Renamers - Enables safe renaming of symbols and functions across the entire codebase.
  • Semantic Color Mappings - Maps semantic tokens provided by the language server to specific editor colors for variables, functions, and types.
  • Semantic Highlighters - Colors code elements based on semantic analysis of symbols and types provided by the language server.

Star history

Star history chart for emacs-lsp/lsp-modeStar history chart for emacs-lsp/lsp-mode

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Lsp Mode

Similar open-source projects, ranked by how many features they share with Lsp Mode.
  • microsoft/vscode-tips-and-tricksmicrosoft avatar

    microsoft/vscode-tips-and-tricks

    9,086View on GitHub↗

    This project is a comprehensive productivity guide and configuration reference for the VS Code editor. It provides a curated collection of shortcuts, configuration tips, and tutorials designed to improve efficiency and optimize the daily coding workflow. The resource covers advanced AI-assisted development, including the integration of autonomous agents, custom prompt files, and AI-powered coding assistants for task automation and code generation. It also provides specialized guidance on integrated terminal management, such as configuring shell profiles and automating command execution. Addi

    View on GitHub↗9,086
  • myriad-dreamin/tinymistMyriad-Dreamin avatar

    Myriad-Dreamin/tinymist

    2,907View on GitHub↗

    Tinymist is a comprehensive suite of tools for Typst document authoring, serving as a language server, document compiler, and project manager. It provides a standardized language service via the Language Server Protocol to enable editor features such as autocompletion, navigation, and semantic highlighting. The project distinguishes itself by integrating a TCP-based live preview server for real-time visual rendering and an advanced static analysis tool that utilizes abstract syntax trees and bidirectional type checking. It also includes a project management system capable of handling multi-fi

    Rustdapdap-serverformatter
    View on GitHub↗2,907
  • golang/vscode-gogolang avatar

    golang/vscode-go

    4,256View on GitHub↗

    This project is a language extension for VS Code that provides comprehensive Go language support. It functions as a language server client, a debugger interface, and a toolchain manager to facilitate Go application development. The extension distinguishes itself by integrating a full suite of toolchain management capabilities, allowing for the installation and configuration of required binaries, linters, and compiler versions directly within the editor. It also provides deep integration for interactive debugging via Delve, supporting remote target debugging, process attachment, and program st

    TypeScriptdebuggergolangvisual-studio-code
    View on GitHub↗4,256
  • facebook/pyreflyfacebook avatar

    facebook/pyrefly

    5,390View on GitHub↗

    Pyrefly is a static type checker for Python that operates as a language server, delivering real-time diagnostics, completions, and navigation in any editor supporting the Language Server Protocol. It also performs static tensor shape analysis, using symbolic dimension variables and arithmetic to verify shape consistency in deep learning models without runtime execution. Beyond core type checking, Pyrefly supports gradual adoption workflows: it can generate a baseline of known errors so only new issues are reported, migrate configuration from other type checkers, and automatically suppress exi

    Rustcode-qualitycontributions-welcomegood-first-issue
    View on GitHub↗5,390
See all 30 alternatives to Lsp Mode→

Frequently asked questions

What does emacs-lsp/lsp-mode do?

lsp-mode is a Language Server Protocol client and IDE feature set for Emacs. It functions as a semantic code analysis tool and JSON-RPC communication layer that connects the editor to external language servers to provide intelligent code completion and real-time diagnostics.

What are the main features of emacs-lsp/lsp-mode?

The main features of emacs-lsp/lsp-mode are: Language Server Integrations, Editor LSP JSON-RPC Clients, Semantic Code Analyzers, Code Action Providers, Code Completion, Code Navigators, Automated Code Refactoring, Debugger Protocol Integrations.

What are some open-source alternatives to emacs-lsp/lsp-mode?

Open-source alternatives to emacs-lsp/lsp-mode include: microsoft/vscode-tips-and-tricks — This project is a comprehensive productivity guide and configuration reference for the VS Code editor. It provides a… myriad-dreamin/tinymist — Tinymist is a comprehensive suite of tools for Typst document authoring, serving as a language server, document… golang/vscode-go — This project is a language extension for VS Code that provides comprehensive Go language support. It functions as a… facebook/pyrefly — Pyrefly is a static type checker for Python that operates as a language server, delivering real-time diagnostics,… w0rp/ale — Ale is a Neovim LSP client and asynchronous linter wrapper designed to integrate language servers and syntax checkers… ycm-core/youcompleteme — YouCompleteMe is a completion engine and semantic code analyzer for the Vim editor. It provides an integrated suite of…