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.
This commit is contained in:
Noam Postavsky 2016-04-26 22:54:47 -04:00
parent c1b2cb7c5e
commit e37ce9e488
2 changed files with 11 additions and 2 deletions

View File

@ -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

View File

@ -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