Volver al ranking

emacs-lsp/lsp-mode

Emacs Lispemacs-lsp.github.io/lsp-mode

Emacs client/library for the Language Server Protocol

language-server-protocolemacsjavajavascriptcpppythonswifttypescriptlanguage-server-clientrustdarteslint
Crecimiento de estrellas
Estrellas
5.1k
Forks
973
Crecimiento semanal
Issues
440
2k4k
dic 2016feb 2020may 2023jul 2026
README

title: LSP Mode - Language Server Protocol support for Emacs description: Language Server Protocol support with multiple languages support for Emacs root_file: README.md

CI

Language Server Protocol Support for Emacs

LSP mode


homepageinstallationlanguagessettingstutorialstroubleshootingscreenshotsFAQ


Why?

  • :heart: Community Driven
  • :gem: Fully featured - supports all features in Language Server Protocol v3.14.
  • :rocket: Fast - see performance section.
  • :star2: Flexible - choose between full-blown IDE with flashy UI or minimal distraction free.
  • :gear: Easy to configure - works out of the box and automatically upgrades if additional packages are present.

Overview

Client for Language Server Protocol (v3.14). lsp-mode aims to provide IDE-like experience by providing optional integration with the most popular Emacs packages like company, flycheck and projectile.

  • Non-blocking asynchronous calls
  • Real-time Diagnostics/linting via flycheck (recommended) or flymake when Emacs > 26 (requires flymake>=1.0.5)
  • Code completion - company-capf / completion-at-point (note that company-lsp is no longer supported).
  • Hovers - using lsp-ui
  • Code actions - via lsp-execute-code-action, modeline (recommended) or lsp-ui sideline.
  • Code outline - using builtin imenu or helm-imenu
  • Code navigation - using builtin xref, lsp-treemacs tree views or lsp-ui peek functions.
  • Code lens
  • Symbol highlights
  • Formatting
  • Project errors on modeline
  • Debugger - dap-mode
  • Breadcrumb on headerline
  • Helm integration - helm-lsp
  • Ivy integration - lsp-ivy
  • Consult integration - consult-lsp
  • Treemacs integration - lsp-treemacs
  • Semantic tokens as defined by LSP 3.17 (compatible language servers include recent development builds of clangd and rust-analyzer)
  • which-key integration for better discovery
  • iedit
  • dired
  • ido

Presentations/demos

See also

  • lsp-docker - provide docker image with preconfigured language servers with corresponding emacs configuration.
  • company-box - company frontend with icons.
  • dap-mode - Debugger integration for lsp-mode.
  • eglot - A minimal LSP implementation built in to Emacs.
  • which-key - Emacs package that displays available keybindings in popup
  • projectile - Project Interaction Library for Emacs
  • emacs-tree-sitter - Faster, fine-grained code highlighting via tree-sitter.
  • gccemacs - modified Emacs capable of compiling and running Emacs Lisp as native code.

Contributions

Contributions are very much welcome!

NOTE Documentation for clients is generated from doc comments in the clients themselves (see lsp-doc.el) and some metadata (see lsp-clients.json) so please submit corrections accordingly.

Support the project

The emacs-lsp organization has more than 20,000 lines of code, to keep all of this working, we need to implement new features and help the community on a lot of issues.

You can help us keep going and improving it by supporting the project

Members

Here is a list of the current lsp-mode members and what they are primarily working on/responsible for.

kurnevsky
kurnevsky

Scala | Rust
seagle0128
seagle0128

Go | Python MS
sebastiansturm
sebastiansturm

lsp-mode core | C++
vibhavp
vibhavp

lsp-mode core
yyoncho
yyoncho

lsp-mode core | Java
ericdallo
ericdallo

Dart/Flutter | Clojure
danielmartin
danielmartin

C++ | Swift
kiennq
kiennq

completions | pwsh
nbfalcon
nbfalcon

lsp-mode core | iedit
psibi
psibi

Terraform | Nix
razzmatazz
razzmatazz

C# | F#
jcs090218
jcs090218

lsp-mode core
Repositorios relacionados
eclipse-theia/theia

Eclipse Theia is a cloud & desktop IDE framework implemented in TypeScript.

TypeScriptnpmEclipse Public License 2.0ideeditor
theia-ide.org
21.6k2.9k
dense-analysis/ale

Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support

Vim ScriptBSD 2-Clause "Simplified" Licenselintervim
14k1.5k
neovim/nvim-lspconfig

Quickstart configs for Nvim LSP

LuaApache License 2.0vimnvim
13.8k2.5k
spyder-ide/spyder

Official repository for Spyder - The Scientific Python Development Environment

PythonPyPIMIT Licensespyderpython
spyder-ide.org
9.3k1.8k
facebook/pyrefly

A fast type checker and language server for Python

Rustcrates.ioMIT Licensecode-qualityide
pyrefly.org
6.8k443
supabase-community/postgres-language-server

A Language Server for Postgres

Rustcrates.ioMIT Licenselanguage-server-protocolpostgres
pg-language-server.com
5.2k121
zigtools/zls

A language server for Zig supporting developers with features like autocomplete and goto definition

ZigMIT Licensezigziglang
zigtools.org/zls/install/
5k436
MaskRay/ccls

C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting

C++Apache License 2.0cpplanguage-server-protocol
4.1k277
VonHeikemen/lsp-zero.nvim

A starting point to setup some lsp related features in neovim.

LuaMIT Licenseneovimnvim
4k89
supabase-community/postgres_lsp

A Language Server for Postgres

Rustcrates.ioMIT Licenselanguage-server-protocolpostgres
supabase.com
3.6k67
autozimu/LanguageClient-neovim

Language Server Protocol (LSP) support for vim and neovim.

Rustcrates.ioMIT Licenselanguage-server-protocoldeoplete-source
3.6k268
rust-lang/rls

Repository for the Rust Language Server (aka RLS)

Rustcrates.ioOtherrustlanguage-server-protocol
3.5k249