homepage | installation | languages | settings | extensions | troubleshooting | screenshots | FAQ
- โค๏ธ Community Driven
- ๐ Fully featured - supports all features in Language Server Protocol v3.14.
- ๐ Fast - see performance section.
- ๐ Flexible - choose between full-blown IDE with flashy UI or minimal distraction free.
- โ๏ธ Easy to configure - works out of the box and automatically upgrades if additional packages are present.
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 - using
lsp-execute-code-action
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
- Debugger - dap-mode
- Helm integration - helm-lsp
- Ivy integration - lsp-ivy
- Treemacs integration - lsp-treemacs
- Semantic highlighting (using either the theia semantic highlighting protocol as implemented by JDT LS and some versions of clangd, or the semantic tokens protocol defined by LSP 3.16)
- which-key integration for better discovery
- skybert's emacsconf presentation (Java)
- thatwist's ScalaUA Conference presentation (Scala)
- 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 - An alternative minimal LSP implementation.
- which-key - Emacs package that displays available keybindings in popup
- projectile - Project Interaction Library for Emacs
Contributions are very much welcome.
Here it is a list of the current lsp-mode
members and what they are
primary working on/responsible for.
totbwf F# |
brotzeit Rust |
dsyzling Scala |
kurnevsky Scala | Rust |
seagle0128 Go | Python MS |
sebastiansturm lsp-mode core | C++ |
vibhavp lsp-mode core |
yyoncho lsp-mode core | Java |
ericdallo Dart | Flutter | docs |
danielmartin C++ | Swift |