branch: master
commit e37ce9e48847bdaad52e55f4d78ddaa0e18c4216
Author: Noam Postavsky <[email protected]>
Commit: Noam Postavsky <[email protected]>
Disable region wrapping for trigger key expansion
It's too awkward to highlight the relevant text while maneuvering point
in front of the trigger key.
* yasnippet.el (yas-expand-from-trigger-key): Let-bind
yas-wrap-around-region to nil if it was t.
* doc/snippet-expansion.org: Document it.
---
doc/snippet-expansion.org | 6 +++++-
yasnippet.el | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/doc/snippet-expansion.org b/doc/snippet-expansion.org
index f57df95..47a857a 100644
--- a/doc/snippet-expansion.org
+++ b/doc/snippet-expansion.org
@@ -29,7 +29,7 @@
- Expanding from emacs-lisp code
-** Trigger key
+** <<Trigger key>>
[[sym:yas-expand][=yas-expand=]] tries to expand a /snippet abbrev/ (also
known as
/snippet key/) before point.
@@ -91,6 +91,10 @@ the region contents into the =$0= placeholder of a snippet
expanded by
[[#yas-insert-snippet][=yas-insert-snippet=]]. Setting it to a character
value (e.g. =?0=)
will insert the contents of corresponding register.
+Note a setting of t is disabled when expanding via [[trigger key]] since
+it's too awkward to highlight the relevant text while maneuvering
+point in front of the trigger key.
+
Older (versions 0.9.1 and below) of Yasnippet, supported a setting of
=cua= that is equivalent to =?0= but only worked with =cua-mode=
turned on. This setting is still supported for backwards
diff --git a/yasnippet.el b/yasnippet.el
index 423f58a..caef9ca 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -2160,7 +2160,12 @@ Optional argument FIELD is for non-interactive use and
is an
object satisfying `yas--field-p' to restrict the expansion to."
(interactive)
(setq yas--condition-cache-timestamp (current-time))
- (let (templates-and-pos)
+ (let ((templates-and-pos nil)
+ ;; Disable region wrapping for trigger key expansion: it's too
+ ;; awkward to have point after the trigger while managing the
+ ;; region contents anyway.
+ (yas-wrap-around-region (if (eq yas-wrap-around-region t) nil
+ yas-wrap-around-region)))
(unless (and yas-expand-only-for-last-commands
(not (member last-command yas-expand-only-for-last-commands)))
(setq templates-and-pos (if field