173 lines
8.1 KiB
Python
173 lines
8.1 KiB
Python
# encoding: utf-8
|
|
from test.vim_test_case import VimTestCase as _VimTest
|
|
from test.constant import *
|
|
from test.util import no_unidecode_available
|
|
|
|
# Transformations {{{#
|
|
class Transformation_SimpleCase_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/foo/batzl/}")
|
|
keys = "test" + EX + "hallo foo boy"
|
|
wanted = "hallo foo boy hallo batzl boy"
|
|
class Transformation_SimpleCaseNoTransform_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/foo/batzl/}")
|
|
keys = "test" + EX + "hallo"
|
|
wanted = "hallo hallo"
|
|
class Transformation_SimpleCaseTransformInFront_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "${1/foo/batzl/} $1")
|
|
keys = "test" + EX + "hallo foo"
|
|
wanted = "hallo batzl hallo foo"
|
|
class Transformation_SimpleCaseTransformInFrontDefVal_ECR(_VimTest):
|
|
snippets = ("test", "${1/foo/batzl/} ${1:replace me}")
|
|
keys = "test" + EX + "hallo foo"
|
|
wanted = "hallo batzl hallo foo"
|
|
class Transformation_MultipleTransformations_ECR(_VimTest):
|
|
snippets = ("test", "${1:Some Text}${1/.+/\\U$0\E/}\n${1/.+/\L$0\E/}")
|
|
keys = "test" + EX + "SomE tExt "
|
|
wanted = "SomE tExt SOME TEXT \nsome text "
|
|
class Transformation_TabIsAtEndAndDeleted_ECR(_VimTest):
|
|
snippets = ("test", "${1/.+/is something/}${1:some}")
|
|
keys = "hallo test" + EX + "some\b\b\b\b\b"
|
|
wanted = "hallo "
|
|
class Transformation_TabIsAtEndAndDeleted1_ECR(_VimTest):
|
|
snippets = ("test", "${1/.+/is something/}${1:some}")
|
|
keys = "hallo test" + EX + "some\b\b\b\bmore"
|
|
wanted = "hallo is somethingmore"
|
|
class Transformation_TabIsAtEndNoTextLeave_ECR(_VimTest):
|
|
snippets = ("test", "${1/.+/is something/}${1}")
|
|
keys = "hallo test" + EX
|
|
wanted = "hallo "
|
|
class Transformation_TabIsAtEndNoTextType_ECR(_VimTest):
|
|
snippets = ("test", "${1/.+/is something/}${1}")
|
|
keys = "hallo test" + EX + "b"
|
|
wanted = "hallo is somethingb"
|
|
class Transformation_InsideTabLeaveAtDefault_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${2:${1/.+/(?0:defined $0)/}}")
|
|
keys = "test" + EX + "sometext" + JF
|
|
wanted = "sometext defined sometext"
|
|
class Transformation_InsideTabOvertype_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${2:${1/.+/(?0:defined $0)/}}")
|
|
keys = "test" + EX + "sometext" + JF + "overwrite"
|
|
wanted = "sometext overwrite"
|
|
|
|
|
|
class Transformation_Backreference_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/([ab])oo/$1ull/}")
|
|
keys = "test" + EX + "foo boo aoo"
|
|
wanted = "foo boo aoo foo bull aoo"
|
|
class Transformation_BackreferenceTwice_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", r"$1 ${1/(dead) (par[^ ]*)/this $2 is a bit $1/}")
|
|
keys = "test" + EX + "dead parrot"
|
|
wanted = "dead parrot this parrot is a bit dead"
|
|
|
|
class Transformation_CleverTransformUpercaseChar_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(.)/\\u$1/}")
|
|
keys = "test" + EX + "hallo"
|
|
wanted = "hallo Hallo"
|
|
class Transformation_CleverTransformLowercaseChar_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(.*)/\l$1/}")
|
|
keys = "test" + EX + "Hallo"
|
|
wanted = "Hallo hallo"
|
|
class Transformation_CleverTransformLongUpper_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(.*)/\\U$1\E/}")
|
|
keys = "test" + EX + "hallo"
|
|
wanted = "hallo HALLO"
|
|
class Transformation_CleverTransformLongLower_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(.*)/\L$1\E/}")
|
|
keys = "test" + EX + "HALLO"
|
|
wanted = "HALLO hallo"
|
|
|
|
class Transformation_SimpleCaseAsciiResult(_VimTest):
|
|
skip_if = lambda self: no_unidecode_available()
|
|
snippets = ("ascii", "$1 ${1/(.*)/$1/a}")
|
|
keys = "ascii" + EX + "éèàçôïÉÈÀÇÔÏ€"
|
|
wanted = "éèàçôïÉÈÀÇÔÏ€ eeacoiEEACOIEU"
|
|
class Transformation_LowerCaseAsciiResult(_VimTest):
|
|
skip_if = lambda self: no_unidecode_available()
|
|
snippets = ("ascii", "$1 ${1/(.*)/\L$1\E/a}")
|
|
keys = "ascii" + EX + "éèàçôïÉÈÀÇÔÏ€"
|
|
wanted = "éèàçôïÉÈÀÇÔÏ€ eeacoieeacoieu"
|
|
|
|
class Transformation_ConditionalInsertionSimple_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(^a).*/(?0:began with an a)/}")
|
|
keys = "test" + EX + "a some more text"
|
|
wanted = "a some more text began with an a"
|
|
class Transformation_CIBothDefinedNegative_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(?:(^a)|(^b)).*/(?1:yes:no)/}")
|
|
keys = "test" + EX + "b some"
|
|
wanted = "b some no"
|
|
class Transformation_CIBothDefinedPositive_ExpectCorrectResult(_VimTest):
|
|
snippets = ("test", "$1 ${1/(?:(^a)|(^b)).*/(?1:yes:no)/}")
|
|
keys = "test" + EX + "a some"
|
|
wanted = "a some yes"
|
|
class Transformation_ConditionalInsertRWEllipsis_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/(\w+(?:\W+\w+){,7})\W*(.+)?/$1(?2:...)/}")
|
|
keys = "test" + EX + "a b c d e f ghhh h oha"
|
|
wanted = "a b c d e f ghhh h oha a b c d e f ghhh h..."
|
|
class Transformation_ConditionalInConditional_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}")
|
|
keys = "test" + EX + "hallo" + ESC + "$a\n" + \
|
|
"test" + EX + "hallo-" + ESC + "$a\n" + \
|
|
"test" + EX + "hallo->"
|
|
wanted = "hallo .\nhallo- >\nhallo-> "
|
|
|
|
class Transformation_CINewlines_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/, */\n/}")
|
|
keys = "test" + EX + "test, hallo"
|
|
wanted = "test, hallo test\nhallo"
|
|
class Transformation_CITabstop_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/, */\t/}")
|
|
keys = "test" + EX + "test, hallo"
|
|
wanted = "test, hallo test\thallo"
|
|
class Transformation_CIEscapedParensinReplace_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/hal((?:lo)|(?:ul))/(?1:ha\($1\))/}")
|
|
keys = "test" + EX + "test, halul"
|
|
wanted = "test, halul test, ha(ul)"
|
|
|
|
class Transformation_OptionIgnoreCase_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/test/blah/i}")
|
|
keys = "test" + EX + "TEST"
|
|
wanted = "TEST blah"
|
|
class Transformation_OptionReplaceGlobal_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/, */-/g}")
|
|
keys = "test" + EX + "a, nice, building"
|
|
wanted = "a, nice, building a-nice-building"
|
|
class Transformation_OptionReplaceGlobalMatchInReplace_ECR(_VimTest):
|
|
snippets = ("test", r"$1 ${1/, */, /g}")
|
|
keys = "test" + EX + "a, nice, building"
|
|
wanted = "a, nice, building a, nice, building"
|
|
class TransformationUsingBackspaceToDeleteDefaultValueInFirstTab_ECR(_VimTest):
|
|
snippets = ("test", "snip ${1/.+/(?0:m1)/} ${2/.+/(?0:m2)/} "
|
|
"${1:default} ${2:def}")
|
|
keys = "test" + EX + BS + JF + "hi"
|
|
wanted = "snip m2 hi"
|
|
class TransformationUsingBackspaceToDeleteDefaultValueInSecondTab_ECR(_VimTest):
|
|
snippets = ("test", "snip ${1/.+/(?0:m1)/} ${2/.+/(?0:m2)/} "
|
|
"${1:default} ${2:def}")
|
|
keys = "test" + EX + "hi" + JF + BS
|
|
wanted = "snip m1 hi "
|
|
class TransformationUsingBackspaceToDeleteDefaultValueTypeSomethingThen_ECR(_VimTest):
|
|
snippets = ("test", "snip ${1/.+/(?0:matched)/} ${1:default}")
|
|
keys = "test" + EX + BS + "hallo"
|
|
wanted = "snip matched hallo"
|
|
class TransformationUsingBackspaceToDeleteDefaultValue_ECR(_VimTest):
|
|
snippets = ("test", "snip ${1/.+/(?0:matched)/} ${1:default}")
|
|
keys = "test" + EX + BS
|
|
wanted = "snip "
|
|
class Transformation_TestKill_InsertBefore_NoKill(_VimTest):
|
|
snippets = "test", r"$1 ${1/.*/\L$0$0\E/}_"
|
|
keys = "hallo test" + EX + "AUCH" + ESC + "wihi" + ESC + "bb" + "ino" + JF + "end"
|
|
wanted = "hallo noAUCH hinoauchnoauch_end"
|
|
class Transformation_TestKill_InsertAfter_NoKill(_VimTest):
|
|
snippets = "test", r"$1 ${1/.*/\L$0$0\E/}_"
|
|
keys = "hallo test" + EX + "AUCH" + ESC + "eiab" + ESC + "bb" + "ino" + JF + "end"
|
|
wanted = "hallo noAUCH noauchnoauchab_end"
|
|
class Transformation_TestKill_InsertBeginning_Kill(_VimTest):
|
|
snippets = "test", r"$1 ${1/.*/\L$0$0\E/}_"
|
|
keys = "hallo test" + EX + "AUCH" + ESC + "wahi" + ESC + "bb" + "ino" + JF + "end"
|
|
wanted = "hallo noAUCH ahiuchauch_end"
|
|
class Transformation_TestKill_InsertEnd_Kill(_VimTest):
|
|
snippets = "test", r"$1 ${1/.*/\L$0$0\E/}_"
|
|
keys = "hallo test" + EX + "AUCH" + ESC + "ehihi" + ESC + "bb" + "ino" + JF + "end"
|
|
wanted = "hallo noAUCH auchauchih_end"
|
|
# End: Transformations #}}}
|