mirror of
https://github.com/joaotavora/yasnippet.git
synced 2025-10-13 13:13:03 +00:00
Add new tests for multi-line mirror indentation
* yasnippet-tests.el (basic-indentation): (navigate-a-snippet-with-multiline-mirrors-issue-665): New tests.
This commit is contained in:
parent
14f830a37d
commit
eeb4b62efb
@ -193,6 +193,51 @@
|
|||||||
(ert-simulate-command '(yas-prev-field))
|
(ert-simulate-command '(yas-prev-field))
|
||||||
(should (looking-at "little sibling"))))
|
(should (looking-at "little sibling"))))
|
||||||
|
|
||||||
|
(ert-deftest basic-indentation ()
|
||||||
|
(with-temp-buffer
|
||||||
|
(ruby-mode)
|
||||||
|
(yas-minor-mode 1)
|
||||||
|
(set (make-local-variable 'yas-indent-line) 'auto)
|
||||||
|
(set (make-local-variable 'yas-also-auto-indent-first-line) t)
|
||||||
|
(yas-expand-snippet "def ${1:method}${2:(${3:args})}\n$0\nend")
|
||||||
|
(cl-loop repeat 3 do (ert-simulate-command '(yas-next-field)))
|
||||||
|
(yas-mock-insert (make-string (random 5) ?\ )) ; purposedly mess up indentation
|
||||||
|
(yas-expand-snippet "class << ${self}\n$0\nend")
|
||||||
|
(ert-simulate-command '(yas-next-field))
|
||||||
|
(should (string= "def method(args)
|
||||||
|
class << self
|
||||||
|
|
||||||
|
end
|
||||||
|
end" (buffer-string)))
|
||||||
|
(should (= 4 (current-column)))))
|
||||||
|
|
||||||
|
(ert-deftest navigate-a-snippet-with-multiline-mirrors-issue-665 ()
|
||||||
|
"In issue 665, a multi-line mirror is attempted.
|
||||||
|
|
||||||
|
Indentation doesn't (yet) happen on these mirrors, but let this
|
||||||
|
test guard against any misnavigations that might be introduced by
|
||||||
|
an incorrect implementation of mirror auto-indentation"
|
||||||
|
(with-temp-buffer
|
||||||
|
(ruby-mode)
|
||||||
|
(yas-minor-mode 1)
|
||||||
|
(yas-expand-snippet "def initialize(${1:params})\n$2${1:$(
|
||||||
|
mapconcat #'(lambda (arg)
|
||||||
|
(format \"@%s = %s\" arg arg))
|
||||||
|
(split-string yas-text \", \")
|
||||||
|
\"\n\")}\nend")
|
||||||
|
(yas-mock-insert "bla, ble, bli")
|
||||||
|
(ert-simulate-command '(yas-next-field))
|
||||||
|
(let ((expected (mapconcat #'identity
|
||||||
|
'("@bla = bla"
|
||||||
|
"[[:blank:]]*@ble = ble"
|
||||||
|
"[[:blank:]]*@bli = bli")
|
||||||
|
"\n")))
|
||||||
|
(should (looking-at expected))
|
||||||
|
(yas-mock-insert "blo")
|
||||||
|
(ert-simulate-command '(yas-prev-field))
|
||||||
|
(ert-simulate-command '(yas-next-field))
|
||||||
|
(should (looking-at (concat "blo" expected))))))
|
||||||
|
|
||||||
|
|
||||||
;;; Snippet expansion and character escaping
|
;;; Snippet expansion and character escaping
|
||||||
;;; Thanks to @zw963 (Billy) for the testing
|
;;; Thanks to @zw963 (Billy) for the testing
|
||||||
|
Loading…
x
Reference in New Issue
Block a user