From 97824d4a21c49c7a0cca4dcd9a220ab6bba7da72 Mon Sep 17 00:00:00 2001 From: Tobias Ostner Date: Sat, 22 Feb 2025 11:32:09 +0100 Subject: [PATCH] Use eglot instead of lsp-mode --- config/emacs/init.el | 60 +++++++++++++++-------------------------- module/home-manager.nix | 3 +-- 2 files changed, 23 insertions(+), 40 deletions(-) diff --git a/config/emacs/init.el b/config/emacs/init.el index 15cfb62..2c13813 100644 --- a/config/emacs/init.el +++ b/config/emacs/init.el @@ -125,6 +125,15 @@ (use-package dockerfile-mode :defer t) +(use-package ediff + :config + (setq + ediff-keep-variants nil + ediff-make-buffers-readonly-at-startup nil + ediff-show-clashes-only t + ediff-split-window-function 'split-window-horizontally + ediff-window-setup-function 'ediff-setup-windows-plain)) + (use-package ef-themes :config (setq ef-themes-headings @@ -136,14 +145,20 @@ ef-themes-variable-pitch-ui t) (mapc #'disable-theme custom-enabled-themes)) -(use-package ediff +(use-package eglot + :ensure t + :hook ((typescript-mode . eglot-ensure) + (tsx-ts-mode . eglot-ensure) + (js-mode . eglot-ensure) + (js-ts-mode . eglot-ensure) + (typescript-ts-mode . eglot-ensure) + (react-native-mode . eglot-ensure)) :config - (setq - ediff-keep-variants nil - ediff-make-buffers-readonly-at-startup nil - ediff-show-clashes-only t - ediff-split-window-function 'split-window-horizontally - ediff-window-setup-function 'ediff-setup-windows-plain)) + (setq eglot-events-buffer-size 0 + eglot-sync-connect nil) + (add-to-list 'eglot-server-programs + '((typescript-ts-mode tsx-ts-mode js-mode js-ts-mode) + . ("typescript-language-server" "--stdio")))) (use-package emacs :ensure nil @@ -356,37 +371,6 @@ (to/set-ligatures-for-font (face-attribute 'default :family)) (global-ligature-mode t)) -(use-package lsp-mode - :bind (:map lsp-mode-map - ("M-." . lsp-find-definition)) - :hook - ((lsp-mode . lsp-diagnostics-mode) - ((js-mode - js-ts-mode - js-jsx-mode - typescript-ts-mode - tsx-ts-mode) . lsp-deferred) - ((python-mode python-ts-mode) . lsp-deferred) - (nix-mode . lsp-deferred) - ((swift-mode swift-ts-mode) . lsp-deferred)) - :commands lsp - :custom - (lsp-keep-workspace-alive nil) - (lsp-keymap-prefix "C-c l") - (lsp-enable-on-type-formatting nil) - (lsp-enable-indentation nil) - :config - (setq lsp-inline-completion-enable t) - - (add-to-list 'lsp-language-id-configuration '(swift-ts-mode . "swift")) - (let ((lsp-sourcekit-executable (string-trim - (shell-command-to-string "xcrun --find sourckit-lsp")))) - (lsp-register-client - (make-lsp-client :new-connection (lsp-stdio-connection - (lambda () lsp-sourcekit-executable)) - :major-modes '(swift-mode swift-ts-mode) - :server-id 'sourcekit-ls)))) - (use-package magit :defer t) diff --git a/module/home-manager.nix b/module/home-manager.nix index 8b73cd5..71267f5 100644 --- a/module/home-manager.nix +++ b/module/home-manager.nix @@ -108,6 +108,7 @@ diff-hl dockerfile-mode ef-themes + eglot envrc exec-path-from-shell flycheck @@ -129,8 +130,6 @@ js2-mode json-mode ligature - lsp-mode - lsp-ui minions multiple-cursors nerd-icons