Fix evil-join filling non-comments poorly
This commit is contained in:
parent
a3f242d4b6
commit
c049480cbd
2 changed files with 20 additions and 17 deletions
|
@ -179,14 +179,17 @@ more information on modifiers."
|
|||
(if file (evil-edit file)))
|
||||
|
||||
;;;###autoload (autoload '+evil-join-a "editor/evil/autoload/advice" nil nil)
|
||||
(evil-define-operator +evil-join-a (beg end)
|
||||
(defun +evil-join-a (orig-fn beg end)
|
||||
"Join the selected lines.
|
||||
|
||||
This advice improves on `evil-join' by removing comment delimiters when joining
|
||||
commented lines, by using `fill-region-as-paragraph'.
|
||||
|
||||
From https://github.com/emacs-evil/evil/issues/606"
|
||||
:motion evil-line
|
||||
;; But revert to the default we're not in a comment, where
|
||||
;; `fill-region-as-paragraph' is too greedy.
|
||||
(if (not (doom-point-in-comment-p (min (max beg (1+ (point))) end)))
|
||||
(funcall orig-fn beg end)
|
||||
(let* ((count (count-lines beg end))
|
||||
(count (if (> count 1) (1- count) count))
|
||||
(fixup-mark (make-marker)))
|
||||
|
@ -200,7 +203,7 @@ From https://github.com/emacs-evil/evil/issues/606"
|
|||
(fill-region-as-paragraph beg end nil t)
|
||||
(goto-char fixup-mark)
|
||||
(fixup-whitespace))))
|
||||
(set-marker fixup-mark nil))))
|
||||
(set-marker fixup-mark nil)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +evil--fix-dabbrev-in-minibuffer-h ()
|
||||
|
|
|
@ -165,7 +165,7 @@ directives. By default, this only recognizes C directives.")
|
|||
(abort-recursive-edit)))
|
||||
|
||||
;; Make J (evil-join) remove comment delimiters when joining lines.
|
||||
(advice-add #'evil-join :override #'+evil-join-a)
|
||||
(advice-add #'evil-join :around #'+evil-join-a)
|
||||
|
||||
;; Prevent gw (`evil-fill') and gq (`evil-fill-and-move') from squeezing
|
||||
;; spaces. It doesn't in vim, so it shouldn't in evil.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue