Go to file
Ivan Yonchovski 62e1f68c1f Use the proper check for "textDocument/hover" support
Fixes https://github.com/emacs-lsp/lsp-java/issues/476
2024-05-14 17:30:37 +03:00
.github ci: typo (#4448) 2024-05-03 03:21:34 -07:00
clients Add support for mesonlsp (#4442) 2024-05-02 11:52:42 -07:00
docs Add support for mesonlsp (#4442) 2024-05-02 11:52:42 -07:00
examples terraform-ls: Prefill required fields and ability to validate on save (#3976) 2023-02-27 12:50:55 +05:30
features Merge completion results so :isIncomplete is preserved (#1937) 2020-07-23 16:44:45 +03:00
overrides docs: Add new Giscus comment system 2022-06-10 12:39:20 -03:00
refcard Rename blacklist to blocklist (#4173) 2023-10-16 09:01:15 +03:00
scripts Preparation to next 9.0.0 release 2024-04-05 20:49:55 -07:00
test Preparation to next 9.0.0 release 2024-04-05 20:49:55 -07:00
use-package Update lsp-use-package.el (#3553) 2022-06-06 15:53:04 +03:00
.dir-locals.el Remove unsafe dir-locals config from .dir-locals.el (#2689) 2021-03-07 07:36:34 -08:00
.git-blame-ignore-revs Update .git-blame-ignore-revs 2020-09-01 23:52:44 -07:00
.gitattributes Replace .editorconfig with .dir-locals and .gitattributes (#1928) 2020-07-16 23:52:50 +03:00
.gitignore Replace Cask with Eask (#3828) 2022-11-26 10:54:16 -03:00
AUTHORS docs: Add @jcs090218 as maintainer (#4400) 2024-03-28 16:58:51 -07:00
CHANGELOG.org Add support for mesonlsp (#4442) 2024-05-02 11:52:42 -07:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-02-25 22:40:25 +05:30
CONTRIBUTING.md Allow running the Sorbet server as an add-on alongside Solargraph (#3698) 2022-08-27 10:24:42 +00:00
Eask Bump version for future release 2024-04-05 20:56:28 -07:00
LICENSE Switch to GPL v3 2016-12-09 23:38:29 +05:30
Makefile Fix CI (#3864) 2023-01-17 09:40:15 +02:00
README.md docs: Add @jcs090218 as maintainer (#4400) 2024-03-28 16:58:51 -07:00
lsp-completion.el lsp-completion: dont use company's specific variable for checking auto trigger char (#4432) 2024-04-17 19:01:17 -07:00
lsp-diagnostics.el Allow Flycheck to determine a diagnostic end position when needed. (#4429) 2024-04-16 01:30:44 -07:00
lsp-dired.el Fix CI (#3864) 2023-01-17 09:40:15 +02:00
lsp-headerline.el Fixing defcustom warnings + 1 wrong usage of `eq` (#4377) 2024-03-18 08:27:13 +02:00
lsp-icons.el require lsp-mode remove native complation warnings and errors (#2897) 2021-05-27 11:22:11 +03:00
lsp-ido.el Fixing defcustom warnings + 1 wrong usage of `eq` (#4377) 2024-03-18 08:27:13 +02:00
lsp-iedit.el Fix evil-multiedit breaking change https://github.com/hlissner/evil-multiedit/issues/39\#issuecomment-950194708 2021-10-23 17:09:41 -03:00
lsp-lens.el Revert "Filter lenses that are not visible without converting to Position" (#4073) 2023-06-14 19:08:10 -03:00
lsp-mode.el Use the proper check for "textDocument/hover" support 2024-05-14 17:30:37 +03:00
lsp-modeline.el Preparation to next 8.0.0 release 2021-09-04 17:23:21 -03:00
lsp-protocol.el clojure: add missing range from project tree feature 2024-01-16 14:48:38 -03:00
lsp-semantic-tokens.el Replace obsolete defadvice with add-advice (#4334) 2024-03-14 10:56:29 +02:00
lsp.el lsp.el: fix "no lexical binding" warning (#4329) 2024-02-11 11:07:39 +02:00
mkdocs.yml Add support for mesonlsp (#4442) 2024-05-02 11:52:42 -07:00

README.md

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

CI

Language Server Protocol Support for Emacs

LSP mode


homepageinstallationlanguagessettingstutorialstroubleshootingscreenshotsFAQ


Why?

  • ❤️ 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.

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.16 (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 - An alternative minimal LSP implementation.
  • 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 it is a list of the current lsp-mode members and what they are primary 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