From dc24cd4f7f45f7ddb7425288ffefc495164156e6 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 7 Apr 2021 22:45:59 +0100 Subject: [PATCH] feat(lsp): create and use on-save minor modes for lsp-format-buffer and lsp-organize-imports commands --- modules/languages/siren-golang.el | 5 ++--- modules/languages/siren-ruby.el | 3 +-- modules/lsp/siren-lsp.el | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/modules/languages/siren-golang.el b/modules/languages/siren-golang.el index 034c97f..e174627 100644 --- a/modules/languages/siren-golang.el +++ b/modules/languages/siren-golang.el @@ -79,9 +79,8 @@ :init (defun siren-lsp-go-mode-setup () - (add-hook 'before-save-hook #'lsp-format-buffer t t) - (add-hook 'before-save-hook #'lsp-organize-imports t t) - + (lsp-format-buffer-on-save-mode t) + (lsp-organize-imports-on-save-mode t) (lsp-deferred))) (use-package go-dlv diff --git a/modules/languages/siren-ruby.el b/modules/languages/siren-ruby.el index e80c6aa..348c81d 100644 --- a/modules/languages/siren-ruby.el +++ b/modules/languages/siren-ruby.el @@ -96,8 +96,7 @@ '(lsp-solargraph-use-bundler . t)) (defun siren-lsp-ruby-mode-setup () - (add-hook 'before-save-hook #'lsp-format-buffer t t) - + (lsp-format-buffer-on-save-mode t) (lsp-deferred))) (use-package dap-ruby diff --git a/modules/lsp/siren-lsp.el b/modules/lsp/siren-lsp.el index a2bcafe..2a2bbf9 100644 --- a/modules/lsp/siren-lsp.el +++ b/modules/lsp/siren-lsp.el @@ -14,6 +14,8 @@ :commands lsp lsp-deferred + lsp-format-buffer-on-save-mode + lsp-organize-imports-on-save-mode :hook (lsp-mode . siren-lsp-mode-setup) @@ -44,7 +46,22 @@ :init (defun siren-lsp-mode-setup () (setq-local company-idle-delay 0.3 - company-minimum-prefix-length 1))) + company-minimum-prefix-length 1)) + + :config + (define-minor-mode lsp-format-buffer-on-save-mode + "Run lsp-format-buffer as a before-save-hook." + :lighter " fmt" + (if lsp-format-buffer-on-save-mode + (add-hook 'before-save-hook 'lsp-format-buffer t t) + (remove-hook 'before-save-hook 'lsp-format-buffer t))) + + (define-minor-mode lsp-organize-imports-on-save-mode + "Run lsp-organize-imports as a before-save-hook." + :lighter " imp" + (if lsp-organize-imports-on-save-mode + (add-hook 'before-save-hook 'lsp-organize-imports t t) + (remove-hook 'before-save-hook 'lsp-organize-imports t)))) (use-package lsp-ui :defer t