mirror of
https://github.com/joaotavora/yasnippet.git
synced 2025-10-13 13:13:03 +00:00
Add yas-longest-key-from-whitespace
Example yas-key-syntaxes function. * yasnippet.el (yas-longest-key-from-whitespace): new function. * yasnippet-tests.el (complicated-yas-key-syntaxes): test it.
This commit is contained in:
parent
10ecde158e
commit
5d10b5dfee
@ -349,7 +349,9 @@ TODO: correct this bug!"
|
||||
("xxx 'quote" . "xxx OKquoteOK"))))
|
||||
(let ((yas-key-syntaxes '(yas-shortest-key-until-whitespace))
|
||||
(yas--foobarbaz t) (yas--barbaz t))
|
||||
(yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK"))))))))
|
||||
(yas-should-expand '(("foo-barbaz" . "foo-barOKbazOK")))
|
||||
(setq yas-key-syntaxes '(yas-longest-key-from-whitespace))
|
||||
(yas-should-expand '(("foo-barbaz" . "OKfoo-barbazOK"))))))))
|
||||
|
||||
|
||||
;;; Loading
|
||||
|
13
yasnippet.el
13
yasnippet.el
@ -2746,6 +2746,19 @@ element of `yas-key-syntaxes'."
|
||||
(when (/= (skip-chars-backward "^[:space:]\n" (1- (point))) 0)
|
||||
'again))
|
||||
|
||||
(defun yas-longest-key-from-whitespace (start-point)
|
||||
"Go back to nearest whitespace, then go forward and return `again' until at START-POINT.
|
||||
|
||||
A newline will be considered whitespace even if the mode syntax
|
||||
marks it as something else (typically comment ender). Use as
|
||||
element of `yas-key-syntaxes'."
|
||||
(if (= (point) start-point)
|
||||
(yas-try-key-from-whitespace start-point)
|
||||
(forward-char))
|
||||
(unless (= original (1+ (point)))
|
||||
'again))
|
||||
|
||||
|
||||
|
||||
;;; User convenience functions, for using in snippet definitions
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user