editor/format: don't move cursor on format-on-save

Also renames +format|on-save to +format|buffer for clarity. It should
not (normally) be used directly. Use `+format|enable-on-save-maybe` and
`+format|enable-on-save`.
This commit is contained in:
Henrik Lissner 2018-08-28 12:02:56 +02:00
parent ee4d317293
commit e932c74758
No known key found for this signature in database
GPG Key ID: 5F6C0EA160557395
2 changed files with 10 additions and 8 deletions

View File

@ -224,10 +224,11 @@ is selected)."
;;
;;;###autoload
(defalias '+format|enable-on-save #'format-all-mode)
(defun +format|enable-on-save ()
"Enables formatting on save."
(add-hook 'before-save-hook #'+format|buffer nil t))
;;;###autoload
(defun +format|on-save ()
"Runs `format-all-buffer' without moving the cursor."
(save-excursion
(format-all-buffer)))
(defun +format|buffer ()
"Runs `format-all-buffer' immediately, without moving the cursor."
(save-excursion (format-all-buffer)))

View File

@ -16,8 +16,9 @@ If nil, it is disabled in all modes, the same as if the +onsave flag wasn't
;;
(defun +format|enable-on-save-maybe ()
"Enable `format-all-mode' in buffers. See `+format-on-save-enabled-modes' to
control which major modes to target."
"Enable formatting on save in certain major modes.
This is controlled by `+format-on-save-enabled-modes'."
(unless (or (eq major-mode 'fundamental-mode)
(cond ((booleanp +format-on-save-enabled-modes)
(null +format-on-save-enabled-modes))
@ -26,7 +27,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)))
(add-hook 'before-save-hook #'+format|on-save nil t)))
(add-hook 'before-save-hook #'+format|buffer nil t)))
(when (featurep! +onsave)
(add-hook 'after-change-major-mode-hook #'+format|enable-on-save-maybe))