dotfiles/.emacs.d/lsp.org
2023-09-19 21:47:43 -07:00

2.3 KiB

Language Servers

This will include any language server packages and configuration.

HTML

  (use-package web-mode
    :mode "\\.html\\'"
    :hook (web-mode . lsp-deferred))

JavaScript/Typescript

  (use-package typescript-mode
    :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
    :mode ("\\.py\\'")
    :hook (python-mode . lsp-deferred))

Install the python-lsp-server though pip.

  pip install python-lsp-server

C/C++

  (use-package ccls
    :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
     :hook (go-mode . lsp-deferred))

Rust

  (use-package rustic
     :hook (rust-mode . lsp-deferred))

C#

  (use-package csharp-mode
     :hook (csharp-mode . lsp-deferred))

JSON

  (use-package json-mode
    :hook (json-mode . lsp-deferred))

Yaml

  (use-package yaml-mode
    :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
    :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
    :hook (R-mode . lsp-deferred))