mirror of
https://git.sr.ht/~magic_rb/dotfiles
synced 2024-12-02 04:56:14 +01:00
a5a651dbb9
Signed-off-by: main <magic_rb@redalder.org>
1.8 KiB
1.8 KiB
LSP
#
Python
Using the Microsoft language server as it's the best afaik. It's weird because it doesn't lookup the path to itself via PATH but has to be statically set.
(use-package lsp-python-ms
:straight t
:hook (python-mode . (lambda ()
(require 'lsp-python-ms)
(envrc-mode)
(setq-local lsp-python-ms-executable (executable-find "python-language-server"))
(lsp)))
:config
(defvar-local lsp-python-ms-executable ""))
C/C++
This just requires hooking lsp onto c-mode
and c++-mode
.
(with-eval-after-load 'lsp
(add-hook c-mode-hook #'lsp)
(add-hook c++-mode-hook #'lsp))
Haskell
Enable haskell-mode
, and lsp-haskell
(use-package haskell-mode
:straight t
:hook ((haskell-mode haskell-literate-mode) . interactive-haskell-mode)
:config
(setq lsp-haskell-plugin-ghcide-type-lenses-global-on nil
lsp-haskell-plugin-import-lens-code-lens-on nil))
(use-package lsp-haskell
:straight t
:after lsp-mode
:hook ((haskell-mode haskell-literate-mode) . #'lsp))
Disable the haskell-stack-ghc
flycheck checker, it's not used when lsp starts, but it does get loaded just before it. Loading and unloading it is slow and causes Emacs to freeze for a few seconds, so just disable it.
(with-eval-after-load "flycheck"
(add-to-list 'flycheck-disabled-checkers 'haskell-stack-ghc))