From 775a79ecfd5042c6b19914ff2702e3803bffbb87 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Wed, 16 Mar 2022 14:23:36 +0100 Subject: eglot: Add variable for disabling LSP integration --- lisp/init-eglot.el | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'lisp/init-eglot.el') diff --git a/lisp/init-eglot.el b/lisp/init-eglot.el index 249b868..0f77754 100644 --- a/lisp/init-eglot.el +++ b/lisp/init-eglot.el @@ -8,6 +8,9 @@ (defvar mpolden/inhibit-organize-imports-before-save nil "List of modes where `eglot-code-action-organize-imports' should not be run before saving the buffer.") +(defvar mpolden/inhibit-lsp nil + "List of modes where `eglot-ensure' should not be called to enable LSP integration.") + (defun mpolden/format-before-save () "Format buffer before saving." (unless (member major-mode mpolden/inhibit-format-before-save) @@ -20,8 +23,14 @@ (defun mpolden/eglot-before-save () "All actions that may run before saving buffer." - (mpolden/format-before-save) - (mpolden/organize-imports-before-save)) + (unless (member major-mode mpolden/inhibit-lsp) + (mpolden/format-before-save) + (mpolden/organize-imports-before-save))) + +(defun mpolden/eglot-ensure () + "Enable Eglot for current `major-mode'." + (unless (member major-mode mpolden/inhibit-lsp) + (eglot-ensure))) (defun mpolden/gfm-unescape-string (string) "Remove backslash-escape of punctuation characters in STRING." @@ -41,10 +50,10 @@ (setq-default tab-width 4) :hook ;; load eglot automatically for these modes - ((go-mode . eglot-ensure) - (java-mode . eglot-ensure) - (python-mode . eglot-ensure) - (rust-mode . eglot-ensure) + ((go-mode . mpolden/eglot-ensure) + (java-mode . mpolden/eglot-ensure) + (python-mode . mpolden/eglot-ensure) + (rust-mode . mpolden/eglot-ensure) (before-save . mpolden/eglot-before-save)) :bind (:map eglot-mode-map -- cgit v1.2.3