diff options
| -rw-r--r-- | evil-surround.el | 8 | ||||
| -rw-r--r-- | test/evil-surround-test.el | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/evil-surround.el b/evil-surround.el index 942e252..e20e0cd 100644 --- a/evil-surround.el +++ b/evil-surround.el @@ -64,6 +64,7 @@ (?> . ("<" . ">")) (?t . evil-surround-read-tag) (?< . evil-surround-read-tag) + (?\C-f . evil-surround-prefix-function) (?f . evil-surround-function)) "Association list of surround items. Each item is of the form (TRIGGER . (LEFT . RIGHT)), all strings. @@ -132,6 +133,13 @@ Each item is of the form (OPERATOR . OPERATION)." (cons (format "%s(" (or fname "")) ")"))) +(defun evil-surround-prefix-function () + "Read a function name from the minibuffer and wrap selection in a +function call in prefixed form." + (let ((fname (evil-surround-read-from-minibuffer "prefix function: " ""))) + (cons (format "(%s " (or fname "")) + ")"))) + (defconst evil-surround-tag-name-re "\\([0-9a-zA-Z\.-]+\\)" "Regexp matching an XML tag name.") diff --git a/test/evil-surround-test.el b/test/evil-surround-test.el index 1da5d37..44662f5 100644 --- a/test/evil-surround-test.el +++ b/test/evil-surround-test.el @@ -99,6 +99,16 @@ "function(argument1) argument2" ("W.") "function(argument1) function(argument2)")) + (ert-info ("prefix-function surrounding with dot repeat") + (evil-test-buffer + :visual-start nil + :visual-end nil + "argument1 argument2" + (turn-on-evil-surround-mode) + ("ysiw\C-ffunction" [return]) + "(function argument1) argument2" + ("WW.") + "(function argument1) (function argument2)")) (ert-info ("even more examples from readme: tag surrounding with dot repeat") (evil-test-buffer :visual-start nil |
