summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--evil-surround.el8
-rw-r--r--test/evil-surround-test.el10
2 files changed, 18 insertions, 0 deletions
diff --git a/evil-surround.el b/evil-surround.el
index 26cf211..3cdd262 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