This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+tools/lsp
2018-08-03 01:37:36 +03:00
..
funcs.el only use javascript-typescript-langserver for javascript, react, typescript 2018-08-03 01:37:36 +03:00
packages.el Lazy load lsp-mode 2018-06-11 00:28:11 -04:00
README.org lsp: respect 80 chars per line in README.org 2018-02-18 22:49:13 -05:00

LSP layer

Description

This layer adds support for basic language server protocol packages speaking language server protocol.

Features:

  • Cross references (definitions, references, document symbol, workspace symbol search and others)
  • Workspace-wide symbol rename
  • Symbol highlighting
  • Flycheck
  • Completion with company-lsp
  • Signature help with eldoc
  • Symbol documentation in a child frame (lsp-ui-doc)

Each language server may support the language server protocol in varying degree and they may also provide extensions, check the language server's website for details. M-x lsp-capabilities in a LSP buffer to list capabilities of the server.

Configuration

The LSP ecosystem is based on two packages: lsp-mode and lsp-ui. Please check out their documentation.

If you add lsp-*-enable to major mode hooks for auto initialization of language clients, customize lsp-project-whitelist lsp-project-blacklist to disable projects you don't want to enable LSP.

If some features doe not work as intended, here is a common check list.

  • M-x lsp-capabilities If the LSP workspace is initialized correctly
  • M-: xref-backend-functions should be (lsp--xref-backend) for cross references
  • M-: completion-at-point-functions should be (lsp-completion-at-point) for completion