summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md8
-rw-r--r--lisp/init-eglot.el7
2 files changed, 13 insertions, 2 deletions
diff --git a/README.md b/README.md
index 5882e10..d1c5557 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,14 @@ Language Server Protocol (LSP).
Once installed, `eglot` should detect and use the servers automatically.
+This configuration enables formatting on save by default. To disable this
+behaviour, add the relevant mode(s) to `mpolden/inhibit-format-before-save`.
+Example:
+
+``` emacs-lisp
+(setq mpolden/inhibit-format-before-save '(foo-mode))
+```
+
## Version compatibility
Lowest supported Emacs version is the one found in [Debian
diff --git a/lisp/init-eglot.el b/lisp/init-eglot.el
index 9014735..fad9f25 100644
--- a/lisp/init-eglot.el
+++ b/lisp/init-eglot.el
@@ -1,3 +1,7 @@
+(defun mpolden/format-before-save ()
+ (unless (member major-mode (bound-and-true-p mpolden/inhibit-format-before-save))
+ (eglot-format)))
+
(use-package eglot
:ensure t
:init
@@ -13,8 +17,7 @@
(java-mode . eglot-ensure)
(python-mode . eglot-ensure)
(rust-mode . eglot-ensure)
- ;; format on save
- (before-save . eglot-format))
+ (before-save . mpolden/format-before-save))
:bind (:map eglot-mode-map
;; C-c r renames identifier