|
# -*- mode: snippet -*-
|
|
# 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
|
|
|
|
)
|
|
)
|