In conjunction with a user-configuration of (delete-selection-mode 1)
, is there a way to consolidate the two following Yasnippets into just one snippet so that it will work differently depending upon whether the region is active. For example: (if (region-active-p) (yas/selected-text) "$1")
Active region -- surround the active region with the snippet:
# -*- mode: snippet -*-
# contributor: lawlist
# key: bold_selected
# name: bold_selected
# binding: C-I b b s
# --
{\bf `yas/selected-text`}
Non-active region -- insert the snippet and place the cursor at the position of $1
:
# -*- mode: snippet -*-
# contributor: lawlist
# key: bold
# name: bold
# binding: C-I b b b
# --
{\bf $1}
Back-ticks surrounding the elisp
code to be evaluated are required. The built-in variable yas-selected-text
stores the text of the selected region, which can be used to reinsert the same text during the snippet creation. Four (4) backslashes are needed for every one (1) backslash.
# -*- mode: snippet -*-
# contributor: lawlist
# key: bold
# name: bold
# binding: TAB <f6>
# --
`(if (region-active-p)
(concat
"{\\\\bf "
yas-selected-text
"}")
"{\\\\bf $1}")`