Fix evil-delete-backward-and-join

A change upstream causes backspace in evil-buffers to ignore:

1. smartparens pair rules (#2308)
2. delete-selection-mode
3. +default--delete-backward-char-a advice on
   delete-char-backward (which deletes closing pairs, deletes continuous
   whitespace in tab-width steps, and closes braces across blank lines)

Caused by emacs-evil/evil@1d6ba80
This commit is contained in:
Henrik Lissner 2020-01-06 15:22:03 -05:00
parent 0d43159607
commit 7150631f66
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -161,12 +161,14 @@ directives. By default, this only recognizes C directives.")
(advice-add #'evil-open-above :around #'+evil--insert-newline-above-and-respect-comments-a) (advice-add #'evil-open-above :around #'+evil--insert-newline-above-and-respect-comments-a)
(advice-add #'evil-open-below :around #'+evil--insert-newline-below-and-respect-comments-a) (advice-add #'evil-open-below :around #'+evil--insert-newline-below-and-respect-comments-a)
;; Fix backspace/DEL commands not respecting `delete-selection-mode' ;; Fix backspace/DEL commands not respecting `delete-selection-mode',
;; smartparens pairs (in some cases), and ignoring
;; `+default--delete-backward-char-a' on `delete-char-backward'
(defadvice! +evil-delete-region-if-mark-a (orig-fn &rest args) (defadvice! +evil-delete-region-if-mark-a (orig-fn &rest args)
:around '(evil-delete-backward-word evil-delete-backward-char-and-join) :override #'evil-delete-backward-and-join
(if (and (bound-and-true-p delete-selection-mode) mark-active) (if (or evil-backspace-join-lines (not (bolp)))
(call-interactively #'backward-delete-char-untabify) (call-interactively #'backward-delete-char-untabify)
(apply orig-fn args))) (user-error "Beginning of line")))
;; Recenter screen after most searches ;; Recenter screen after most searches
(dolist (fn '(evil-visualstar/begin-search-forward (dolist (fn '(evil-visualstar/begin-search-forward