From 2eadbe792ad6250e56fae5a5b4a3b1cd2cb0251c Mon Sep 17 00:00:00 2001 From: Alexander Heldt Date: Thu, 16 May 2024 10:19:39 +0200 Subject: [PATCH] pinwheel: Split `on-save` hooks for `eglot` To better control what hook is used for what language --- hosts/pinwheel/modules/emacs/config.org | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/hosts/pinwheel/modules/emacs/config.org b/hosts/pinwheel/modules/emacs/config.org index 50f94b9..2c082f4 100644 --- a/hosts/pinwheel/modules/emacs/config.org +++ b/hosts/pinwheel/modules/emacs/config.org @@ -480,21 +480,27 @@ Setup prefix for keybindings. * LSP ** Eglot #+BEGIN_SRC emacs-lisp - (defun alex/eglot-organize-imports () (interactive) - (call-interactively 'eglot-code-action-organize-imports)) + (defun alex/_eglot-organize-imports () (interactive) + (call-interactively 'eglot-code-action-organize-imports) + ) - (defun alex/eglot-on-save () - (add-hook 'before-save-hook #'eglot-format-buffer -10 t) - (add-hook 'before-save-hook #'alex/eglot-organize-imports nil t) - ) + (defun alex/organize-imports-on-save () + (add-hook 'before-save-hook #'alex/_eglot-organize-imports nil t) + ) + + (defun alex/format-on-save () + (add-hook 'before-save-hook #'eglot-format-buffer -10 t) + ) (use-package eglot :config ;; Ensure `nil` is in your PATH. (add-to-list 'eglot-server-programs '(nix-mode . ("nil"))) :hook ( - (eglot-managed-mode . alex/eglot-on-save) (go-mode . eglot-ensure) + (go-mode . alex/organize-imports-on-save) + (go-mode . alex/format-on-save) + (nix-mode . eglot-ensure) (javascript-mode . eglot-ensure) (js-mode . eglot-ensure) @@ -502,7 +508,9 @@ Setup prefix for keybindings. (typescript-ts-mode . eglot-ensure) (rust-mode . eglot-ensure) (glsl-mode . eglot-ensure) + (scala-mode . eglot-ensure) + (scala-mode . alex/format-on-save) ) ) #+END_SRC