diff --git a/modules/editor/evil/config.el b/modules/editor/evil/config.el index 5315d3f5c..db274fab2 100644 --- a/modules/editor/evil/config.el +++ b/modules/editor/evil/config.el @@ -281,6 +281,16 @@ directives. By default, this only recognizes C directives.") :init (after! evil-surround (evil-embrace-enable-evil-surround-integration)) + + ;; HACK: This must be done ASAP, before embrace has a chance to + ;; buffer-localize `embrace--pairs-list' (which happens right after it calls + ;; `embrace--setup-defaults'), otherwise any new, global default pairs we + ;; define won't be in scope. + (defadvice! +evil--embrace-init-escaped-pairs-a (&rest args) + "Add escaped-sequence support to embrace." + :after #'embrace--setup-defaults + (embrace-add-pair-regexp ?\\ "\\[[{(]" "\\[]})]" #'+evil--embrace-escaped + (embrace-build-help "\\?" "\\?"))) :config (setq evil-embrace-show-help-p nil) @@ -317,15 +327,7 @@ directives. By default, this only recognizes C directives.") (set var (delq ?< evil-embrace-evil-surround-keys)) (set var (delq ?> evil-embrace-evil-surround-keys))) (embrace-add-pair-regexp ?< "\\_<[a-z0-9-_]+<" ">" #'+evil--embrace-angle-brackets) - (embrace-add-pair ?> "<" ">")) - - ;; Add escaped-sequence support to embrace - (setf (alist-get ?\\ (default-value 'embrace--pairs-list)) - (make-embrace-pair-struct - :key ?\\ - :read-function #'+evil--embrace-escaped - :left-regexp "\\[[{(]" - :right-regexp "\\[]})]"))) + (embrace-add-pair ?> "<" ">"))) (use-package! evil-escape