Repolode
emacs-lsp

emacs-lsp/lsp-mode

Emacs client for the Language Server Protocol, adding IDE-style completion, diagnostics, navigation and refactoring to Emacs.

Stars
5,134
Forks
984
Open issues
508
Last commit
18 days ago

What is it?

lsp-mode is a client library that connects Emacs to language servers implementing the Language Server Protocol (v3.14). It brings IDE-like features such as code completion, real-time diagnostics, hovers, code actions, formatting, code lenses and symbol highlighting into Emacs buffers, with asynchronous, non-blocking requests.

The package integrates with common Emacs tools: flycheck or flymake for diagnostics, company-capf or completion-at-point for completion, xref and imenu for navigation and outlines, and optional add-ons like lsp-ui, lsp-treemacs and dap-mode for hovers, project trees and debugging. It works out of the box and adds features automatically when related packages are installed.

Supported languages include C++, Go, Rust, Python, TypeScript/JavaScript, Java, Scala, Ruby, PHP, Dart and Swift, among others, through their respective language servers.

Key features

  • 01Implements Language Server Protocol v3.14 with asynchronous requests.
  • 02Provides completion, diagnostics, hovers, code actions and formatting.
  • 03Offers code navigation via xref, imenu and treemacs views.
  • 04Integrates with flycheck, flymake, company and completion-at-point.
  • 05Supports semantic tokens for servers such as clangd and rust-analyzer.
  • 06Connects to debuggers through the companion dap-mode package.

Use cases

  • Turning Emacs into a full IDE for Rust, Go or C++ projects.
  • Adding language-aware completion and diagnostics to Python or TypeScript editing.
  • Navigating large multi-language codebases with xref and treemacs views.
  • Debugging applications from inside Emacs via dap-mode.

Quick start

  1. 1

    Install lsp-mode from MELPA by following the installation guide

Things to know

  • Licensed under GPL-3.0, a copyleft license that requires derivative works to be distributed under the same terms.

Topics

FAQ

What is lsp-mode?
Emacs client for the Language Server Protocol, adding IDE-style completion, diagnostics, navigation and refactoring to Emacs. lsp-mode is a client library that connects Emacs to language servers implementing the Language Server Protocol (v3.14). It brings IDE-like features such as code completion, real-time diagnostics, hovers, code actions, formatting, code lenses and symbol highlighting into Emacs buffers, with asynchronous, non-blocking requests.
Is lsp-mode free to use? What license does it have?
lsp-mode is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is lsp-mode still maintained?
Actively maintained. The last commit to lsp-mode was on Oct 20, 2026.
What can I use lsp-mode for?
Turning Emacs into a full IDE for Rust, Go or C++ projects. Adding language-aware completion and diagnostics to Python or TypeScript editing. Navigating large multi-language codebases with xref and treemacs views. Debugging applications from inside Emacs via dap-mode.
How do I install lsp-mode?
Install lsp-mode from MELPA by following the installation guide
Where can I get lsp-mode?
The source code and installation instructions are on GitHub: https://github.com/emacs-lsp/lsp-mode

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects