all repos — nixfiles @ 55375ce81d52a0aac8a25629da970699d2af549d

System and user configuration, managed by nix and home-manager

Emacs: replace lsp packages with eglot

Alan Pearce
commit

55375ce81d52a0aac8a25629da970699d2af549d

parent

e55ec214705492e8ac0baaca394b34cabbc23461

2 files changed, 17 insertions(+), 45 deletions(-)

changed files
M user/emacs/init.eluser/emacs/init.el
@@ -576,8 +576,8 @@ (setq eldoc-idle-delay 0.5)
(global-eldoc-mode +1))) (use-package eldoc-box - :after (eldoc lsp-mode) - :ghook ('lsp-managed-mode #'eldoc-box-hover-mode)) + :after (eldoc eglot) + :ghook ('eglot-managed-mode #'eldoc-box-hover-mode)) (use-package ehelp :defer 15)
@@ -747,9 +747,7 @@ ;;;; rust
(use-package rustic :mode (("\\.rs\\'" . rustic-mode)) :config (progn - (setq rustic-format-on-save t - lsp-rust-analyzer-display-inlay-hints t - lsp-rust-analyzer-cargo-watch-command "clippy") + (setq rustic-format-on-save t) (with-eval-after-load 'flycheck (add-to-list 'flycheck-checkers 'rustic-clippy))))
@@ -963,9 +961,8 @@
(use-package tree-sitter-indent :ghook ('(rustic-mode-hook))) -(use-package lsp-mode - :defer 2 - :general (:states 'normal :keymaps 'lsp-mode-map +(use-package eglot + :general (:states 'normal :keymaps 'eglot-mode-map "gd" #'xref-find-definitions "gr" #'xref-find-references "C-t" #'xref-pop-marker-stack)
@@ -978,38 +975,16 @@ go-mode-hook
scss-mode-hook html-mode-hook haskell-mode-hook) - #'lsp-deferred) - :ghook ('lsp-mode-hook #'lsp-enable-which-key-integration) - :config (progn - (setq lsp-auto-guess-root t - lsp-auto-configure nil - lsp-idle-delay 0.5 - lsp-enable-symbol-highlighting nil - lsp-eldoc-render-all t) - (add-to-list 'lsp-language-id-configuration '(js-mode . "javascript")))) - -(use-package lsp-javascript - :after (lsp-mode)) - -(use-package lsp-ui - :after lsp-mode - :ghook ('lsp-mode-hook) - :general (:states 'normal :keymaps 'lsp-ui-mode-map - "gd" #'lsp-ui-peek-find-definitions - "gr" #'lsp-ui-peek-find-references - "C-t" #'lsp-ui-peek-jump-backward) + #'eglot-ensure) :config (progn - (setq lsp-enable-snippet nil - lsp-ui-sideline-show-code-actions nil - lsp-ui-sideline-enable t - lsp-ui-doc-enable nil - lsp-ui-peek-always-show t))) - -(use-package lsp-ivy - :after (lsp ivy)) + (add-to-list 'eglot-stay-out-of 'company) + (defun my/setup-eglot-eldoc () + (push 'flymake-eldoc-function eldoc-documentation-functions)) + (add-hook 'eglot-managed-mode-hook 'my/setup-eglot-eldoc))) -(use-package lsp-haskell - :after lsp-mode) +(use-package consult-eglot + :commands (consult-eglot-symbols) + :after eglot) ;; Inside a javascript project, it's common to install tools locally to ;; the project. This will allows emacs to find their executables.
@@ -1103,8 +1078,7 @@ "h" '(:keymap ehelp-map :package ehelp)
"w" '(:keymap evil-window-map :package evil) "x" '(:keymap ctl-x-map) "c" (general-simulate-key "C-c") - "l" '(:keymap lsp-command-map :package lsp-mode) - "j" #'lsp-ivy-workspace-symbol + "j" #'consult-eglot-symbols "q" #'evil-delete-buffer "p" '(:keymap projectile-command-map :package projectile) "v" #'split-window-right
M user/settings/emacs.nixuser/settings/emacs.nix
@@ -88,6 +88,8 @@ clojure-mode
company company-web company-tabnine + consult + consult-eglot counsel counsel-projectile crux
@@ -96,6 +98,7 @@ dockerfile-mode
doom-themes dired-git-info editorconfig + eglot eldoc-box emmet-mode esh-autosuggest
@@ -141,11 +144,6 @@ k8s-mode
kubel kubel-evil ledger-mode - lsp-mode - lsp-ui - lsp-haskell - lsp-ivy - lsp-treemacs magit markdown-mode modus-themes