mirror of
https://github.com/doomemacs/doomemacs.git
synced 2025-12-06 02:30:33 -08:00
- Documents lsp-haskell - Use hie-wrapper on MacOS - Update tools/lsp README to include :lang haskell - Mention cabal-new-repl setting (#1140)
4.2 KiB
4.2 KiB
tools/lsp
Description
This module integrate language servers into Doom Emacs. They provide features you'd expect from IDEs, like code completion, realtime linting, language-aware imenu/xref integration, jump-to-definition/references support, and more.
To get LSP working, you'll need two things:
- To install a language server appropriate for your targeted language (you'll find a table mapping languages to available servers in the lsp-mode project README).
- To enable this module and the LSP capabilities of the appropriate
:langmodule with the+lspflag. If your language's module doesn't have LSP support, you'll have to configure your own (described in the Configuration section).
As of this writing, these Doom modules possess LSP support:
| Module | Major modes | Default language server |
|---|---|---|
| :lang cc | c-mode, c++-mode, objc-mode | ccls |
| :lang go | go-mode | go-langserver |
| :lang haskell | haskell-mode | haskell-ide-engine |
| :lang javascript | js2-mode, rjsx-mode, typescript-mode | typescript-language-server |
| :lang java | java-mode | lsp-java |
| :lang ocaml | taureg-mode | ocaml-language-server |
| :lang php | php-mode | php-language-server |
| :lang python | python-mode | lsp-python-ms |
| :lang ruby | ruby-mode, enh-ruby-mode | solargraph |
| :lang rust | rust-mode | rls |
| :lang sh | sh-mode | bash-language-server |
| :lang web | web-mode, css-mode, scss-mode, sass-mode, less-css-mode | vscode-css-languageserver-bin, vscode-html-languageserver-bin |
Module Flags
This module provides no flags.
Plugins
Prerequisites
This module has no direct prerequisites, but to get LSP working, you'll need to install language servers.
You'll find a table that lists available language servers and how to install them in the lsp-mode project README. The documentation of the module for your targeted language will contain brief instructions as well.