diff --git a/modules/editor/format/autoload/format.el b/modules/editor/format/autoload/format.el index 64a8080da..e48302c75 100644 --- a/modules/editor/format/autoload/format.el +++ b/modules/editor/format/autoload/format.el @@ -217,3 +217,14 @@ is selected)." (if (use-region-p) (+format-region beg end) (format-all-buffer))) + + +;; +;; Hooks +;; + +;;;###autoload +(defun +format|on-save () + "Runs `format-all-buffer' without moving the cursor." + (save-excursion + (format-all-buffer))) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index ff47cad60..955e0cf42 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -26,7 +26,7 @@ control which major modes to target." ((not (memq major-mode +format-on-save-enabled-modes)))) (not (require 'format-all nil t)) (not (format-all-probe))) - (format-all-mode +1))) + (add-hook 'before-save-hook #'+format|on-save))) (when (featurep! +onsave) (add-hook 'after-change-major-mode-hook #'+format|enable-on-save-maybe))