pinwheel: Split on-save hooks for eglot

To better control what hook is used for what language
This commit is contained in:
Alexander Heldt
2024-05-16 10:19:39 +02:00
parent 4c9fb2928e
commit 2eadbe792a

View File

@@ -480,21 +480,27 @@ Setup prefix for keybindings.
* LSP * LSP
** Eglot ** Eglot
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defun alex/eglot-organize-imports () (interactive) (defun alex/_eglot-organize-imports () (interactive)
(call-interactively 'eglot-code-action-organize-imports)) (call-interactively 'eglot-code-action-organize-imports)
)
(defun alex/eglot-on-save () (defun alex/organize-imports-on-save ()
(add-hook 'before-save-hook #'eglot-format-buffer -10 t) (add-hook 'before-save-hook #'alex/_eglot-organize-imports nil t)
(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 (use-package eglot
:config :config
;; Ensure `nil` is in your PATH. ;; Ensure `nil` is in your PATH.
(add-to-list 'eglot-server-programs '(nix-mode . ("nil"))) (add-to-list 'eglot-server-programs '(nix-mode . ("nil")))
:hook ( :hook (
(eglot-managed-mode . alex/eglot-on-save)
(go-mode . eglot-ensure) (go-mode . eglot-ensure)
(go-mode . alex/organize-imports-on-save)
(go-mode . alex/format-on-save)
(nix-mode . eglot-ensure) (nix-mode . eglot-ensure)
(javascript-mode . eglot-ensure) (javascript-mode . eglot-ensure)
(js-mode . eglot-ensure) (js-mode . eglot-ensure)
@@ -502,7 +508,9 @@ Setup prefix for keybindings.
(typescript-ts-mode . eglot-ensure) (typescript-ts-mode . eglot-ensure)
(rust-mode . eglot-ensure) (rust-mode . eglot-ensure)
(glsl-mode . eglot-ensure) (glsl-mode . eglot-ensure)
(scala-mode . eglot-ensure) (scala-mode . eglot-ensure)
(scala-mode . alex/format-on-save)
) )
) )
#+END_SRC #+END_SRC