2.5 KiB
2.5 KiB
Language Servers
This will include any language server packages and configuration.
HTML
(use-package web-mode
:defer t
:mode "\\.html\\'"
:hook (web-mode . lsp-deferred))
JavaScript/Typescript
(use-package typescript-mode
:defer t
:mode ("\\.ts\\'" "\\.js\\'")
:hook (typescript-mode . lsp-deferred))
Install the typescript-language-server
through npm.
npm install -g typescript-language-server
Python
(use-package python-mode
:defer t
:mode ("\\.py\\'")
:hook (python-mode . lsp-deferred))
Install the python-lsp-server
though pip.
pip install python-lsp-server
C/C++
(use-package ccls
:defer t
:hook ((c-mode cc-mode c++-mode objc-mode cuda-mode) .
(lambda () (require 'ccls) (lsp)))
:config
(setq ccls-executable "/usr/bin/ccls"))
Install ccls
with homebrew using the following command.
sudo apt install ccls
Golang
(use-package go-mode
:defer t
:hook (go-mode . lsp-deferred))
Rust
(use-package rustic
:defer t
:hook (rust-mode . lsp-deferred))
C#
(use-package csharp-mode
:defer t
:hook (csharp-mode . lsp-deferred))
JSON
(use-package json-mode
:defer t
:hook (json-mode . lsp-deferred))
Yaml
(use-package yaml-mode
:defer t
:hook (yaml-mode . lsp-deferred))
Yara
To install the corresponding LSP, you need to install yls
. Using the command pip install -U yls-yara
. Keep in mind that yls
is dependent on an up to date version of yara-python
.
(use-package yara-mode
:defer t
:hook (yara-mode . lsp-deferred)
:config
(with-eval-after-load 'lsp-mode
(add-to-list 'lsp-language-id-configuration
'(yara-mode . "yara"))
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection "yls")
:activation-fn (lsp-activate-on "yara")
:server-id 'yls))))
R
(use-package ess
:defer t
:hook (R-mode . lsp-deferred))
Haskell
(use-package haskell-mode
:defer t
:hook (haskell-mode . lsp-deferred))