pinwheel: Split on-save hooks for eglot
To better control what hook is used for what language
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user