Add < surround key
ysiw<testRET will transform String To test<String> In C-style major modes that use angle bracket generics/templates (e.g. C++, rust, C#, java, swift, and typescript).
This commit is contained in:
parent
fb16afb4f2
commit
403c2e1b5d
2 changed files with 18 additions and 0 deletions
|
@ -31,3 +31,9 @@
|
||||||
(defun +evil--embrace-elisp-fn ()
|
(defun +evil--embrace-elisp-fn ()
|
||||||
"Elisp function support for embrace."
|
"Elisp function support for embrace."
|
||||||
(cons (format "(%s " (or (read-string "(") "")) ")"))
|
(cons (format "(%s " (or (read-string "(") "")) ")"))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +evil--embrace-angle-brackets ()
|
||||||
|
"Type/generic angle brackets."
|
||||||
|
(cons (format "%s<" (or (read-string "") ""))
|
||||||
|
">"))
|
||||||
|
|
|
@ -202,6 +202,8 @@ directives. By default, this only recognizes C directives.")
|
||||||
:hook (emacs-lisp-mode . embrace-emacs-lisp-mode-hook)
|
:hook (emacs-lisp-mode . embrace-emacs-lisp-mode-hook)
|
||||||
:hook ((emacs-lisp-mode lisp-mode) . +evil|embrace-lisp-mode-hook)
|
:hook ((emacs-lisp-mode lisp-mode) . +evil|embrace-lisp-mode-hook)
|
||||||
:hook ((org-mode LaTeX-mode) . +evil|embrace-latex-mode-hook)
|
:hook ((org-mode LaTeX-mode) . +evil|embrace-latex-mode-hook)
|
||||||
|
:hook ((c++-mode rust-mode rustic-mode csharp-mode java-mode swift-mode typescript-mode)
|
||||||
|
. +evil|embrace-angle-bracket-modes-hook)
|
||||||
:init
|
:init
|
||||||
(after! evil-surround
|
(after! evil-surround
|
||||||
(evil-embrace-enable-evil-surround-integration))
|
(evil-embrace-enable-evil-surround-integration))
|
||||||
|
@ -219,6 +221,16 @@ directives. By default, this only recognizes C directives.")
|
||||||
:right-regexp ")"))
|
:right-regexp ")"))
|
||||||
embrace--pairs-list))
|
embrace--pairs-list))
|
||||||
|
|
||||||
|
(defun +evil|embrace-angle-bracket-modes-hook ()
|
||||||
|
(set (make-local-variable 'evil-embrace-evil-surround-keys)
|
||||||
|
(delq ?< evil-embrace-evil-surround-keys))
|
||||||
|
(push (cons ?< (make-embrace-pair-struct
|
||||||
|
:key ?<
|
||||||
|
:read-function #'+evil--embrace-angle-brackets
|
||||||
|
:left-regexp "\\[a-z]+<"
|
||||||
|
:right-regexp ">"))
|
||||||
|
embrace--pairs-list))
|
||||||
|
|
||||||
;; Add escaped-sequence support to embrace
|
;; Add escaped-sequence support to embrace
|
||||||
(setf (alist-get ?\\ (default-value 'embrace--pairs-list))
|
(setf (alist-get ?\\ (default-value 'embrace--pairs-list))
|
||||||
(make-embrace-pair-struct
|
(make-embrace-pair-struct
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue