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. Works out of the box and automatically upgrades if additional packages are present. Choose between full-blown IDE with flashy UI or minimal distraction-free. Supports all features in Language Server Protocol v3.14. Semantic tokens as defined by LSP 3.16 (compatible language servers include recent development builds of clangd and rust-analyzer). If LSP server supports completion, lsp-mode use symbols returned by the server to present the user when completion is triggered via completion-at-point. For UI feedback of the available code actions, you can enable lsp-modeline-code-actions-mode which shows available code actions on modeline.