]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/yasnippet/snippets/emacs-lisp-mode/x-word-or-region.yasnippet
Add yasnippet.
[gnu-emacs-elpa] / packages / yasnippet / snippets / emacs-lisp-mode / x-word-or-region.yasnippet
diff --git a/packages/yasnippet/snippets/emacs-lisp-mode/x-word-or-region.yasnippet b/packages/yasnippet/snippets/emacs-lisp-mode/x-word-or-region.yasnippet
new file mode 100644 (file)
index 0000000..b72f8b8
--- /dev/null
@@ -0,0 +1,28 @@
+# contributor: Xah Lee (XahLee.org)
+# name: Command that works on region or word
+# key: x-word-or-region
+# --
+;; example of a command that works on current word or text selection
+(defun down-case-word-or-region ()
+  "Lower case the current word or text selection."
+(interactive)
+(let (pos1 pos2 meat)
+  (if (and transient-mark-mode mark-active)
+      (setq pos1 (region-beginning)
+            pos2 (region-end))
+    (setq pos1 (car (bounds-of-thing-at-point 'symbol))
+          pos2 (cdr (bounds-of-thing-at-point 'symbol))))
+
+  ; now, pos1 and pos2 are the starting and ending positions
+  ; of the current word, or current text selection if exists
+
+  ;; put your code here.
+  $0
+  ;; Some example of things you might want to do
+  (downcase-region pos1 pos2) ; example of a func that takes region as args
+  (setq meat (buffer-substring-no-properties pos1 pos2)) ; grab the text.
+  (delete-region pos1 pos2) ; get rid of it
+  (insert "newText") ; insert your new text
+
+  )
+)
\ No newline at end of file