diff --git a/init.org b/init.org index e019df6..4f5fe86 100644 --- a/init.org +++ b/init.org @@ -1456,6 +1456,21 @@ LSP sets it's prefix key to =s-l= by default, which uses the Super key which I u ; lsp-ui-doc-use-webkit t ) :commands lsp-ui-mode) + +(defvar-local nemo/lsp-format-on-save t) + +(define-minor-mode nemo/lsp-format-on-save-mode + "Run lsp-format-buffer on save." + :lighter " fmt" + (if nemo/lsp-format-on-save-mode + (add-hook 'before-save-hook #'lsp-format-buffer nil t) + (remove-hook 'before-save-hook #'lsp-format-buffer nil t) + )) + +(defun nemo/do-lsp-format-on-save () + "Format on save using LSP server." + (if nemo/lsp-format-on-save + (lsp-format-buffer))) #+end_src ** Graphics @@ -1494,7 +1509,8 @@ hlsl-mode: (use-package rustic :straight t :defer t - :after (rust-mode) + ;; :after (rust-mode) + :hook(rustic-mode . nemo/lsp-format-on-save-mode) :general-config (general-define-key :prefix-map 'nemo/rust-map @@ -1520,14 +1536,15 @@ hlsl-mode: "m" '(:keymap nemo/rust-map :wk "Cargo") ) :config - (setq rustic-format-on-save t - rust-format-on-save t - rust-mode-treesitter-derive t - rustic-format-trigger 'on-save + (setq rust-mode-treesitter-derive t + rustic-format-on-save nil + ;; rustic-format-trigger 'on-save ;; rustic-format-on-save-method #'rustic-format-buffer rustic-analyzer-command '("/usr/bin/rust-analyzer") ) + ;; (setq nemo/lsp-format-on-save t) ) + #+end_src #+begin_src emacs-lisp