This makes the testsuite slower, but avoids leaking state. Also the code
has to be less aware of being under test. It will also allow to to more
integration tests with other plugins that have support for UltiSnips or
that UltiSnips supports.
Removed parsing responsibilities from SnippetManager and instead put
them into the new module providers. Renamed private methods on
SnippetManager that are not meant to be called by external libraries to
start with _. Refactored tests so that expected failures can be tested
and therefore removed the testing flag from SnippetManager.
This was discovered while trying to use
UltiSnips_SnippetsInCurrentScope() with some snippets that have
apostrophes in the description (such as printf('...', ...)).
Add "s" snippet option which, if set, will cause trailing whitespace to
be stripped from lines before jumping to the next tab stop.
When used with a snippet like the following this will allow the text
from the $1 tabstop to be removed and have the space in front of that
automatically deleted when the user jumps to $2. This will work even if
using the same key for snippet expansion and jumping to the next
tabstop, whereas if the space was manually removed the key would cause
the snippet to be expanded again.
snippet do "do block" s
do `!p snip.rv = "|" if t[1] else""`${1:args}`!p snip.rv = "|" if t[1] else""`
$2
end
$0
endsnippet
Exercise changes from commit 7335225, to check that the problem fixed by
that doesn't recur.
I've run all tests including this one both with and without the
previously mentioned commit, the new test only passes if that commit is
included. All other tests pass in either case.
Debian unstable currently has a pre-release version of screen 4.1.0.
This version changes the "stuff" command so that special characters get
parsed, breaking many of the tests.
Detect if the version of screen being used to run tests does this
parsing, and if so do additional escaping of characters so that tests
again work.
With this change, all tests pass with both old and new versions of
screen.
Put the code that instructs vim to write its buffer to a temporary file
and then reads that file into a python string into the VimInterface
class. This will allow that to be done by code outside of tests.