runtime(vim): Update base-syntax, contain let-heredocs
Limit heredoc matches to assignment statements. Matching these at the top level is very slow. closes: #17473 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
138fb951e0
commit
274efcc7e6
@ -0,0 +1,2 @@
|
||||
highlight link vimVar Identifier
|
||||
|
||||
298
runtime/syntax/testdir/input/vim9_ex_let_heredoc.vim
Normal file
298
runtime/syntax/testdir/input/vim9_ex_let_heredoc.vim
Normal file
@ -0,0 +1,298 @@
|
||||
vim9script
|
||||
# VIM_TEST_SETUP let g:vimsyn_folding = "h"
|
||||
# VIM_TEST_SETUP setl fdc=2 fdl=99 fdm=syntax
|
||||
|
||||
|
||||
var foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
var foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
var [foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
var [foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
var [foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
var [foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
# assignment
|
||||
|
||||
foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
g:foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
g:foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
[foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[g:foo, g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[g:foo, g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[g:foo,
|
||||
\ g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
[g:foo,
|
||||
\ g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
|
||||
# typed
|
||||
|
||||
var foo: list<string> =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
var [foo: string, bar: string] =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
# assignment
|
||||
|
||||
# trim
|
||||
|
||||
var foo =<< trim END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
var foo =<< trim END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
|
||||
# interpolation
|
||||
|
||||
var foo =<< eval END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< eval END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< trim eval END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< trim eval END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
# no interpolation (escaped { and })
|
||||
|
||||
var foo =<< eval END
|
||||
line{{1 + 0}}
|
||||
line{{1 + 1}}
|
||||
END
|
||||
|
||||
var foo =<< eval END
|
||||
line{{1 + 0}}
|
||||
line{{1 + 1}}
|
||||
END
|
||||
|
||||
var foo =<< trim eval END
|
||||
line{{1 + 0}}
|
||||
line{{1 + 1}}
|
||||
END
|
||||
|
||||
var foo =<< trim eval END
|
||||
line{{1 + 0}}
|
||||
line{{1 + 1}}
|
||||
END
|
||||
|
||||
|
||||
# no interpolation
|
||||
|
||||
var foo =<< END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< trim END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
var foo =<< trim END
|
||||
line{1 + 0}
|
||||
line{1 + 1}
|
||||
END
|
||||
|
||||
|
||||
# end marker must not be followed by whitespace
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, [" END "])
|
||||
var foo =<< END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
# end marker must be vertically aligned with :var (if preceded by whitespace)
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END "])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
# assert_equal(foo, ["END"])
|
||||
var foo =<< trim END
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
# end markers
|
||||
|
||||
var foo =<< !@#$%^&*()_+
|
||||
line1
|
||||
line2
|
||||
!@#$%^&*()_+
|
||||
|
||||
var foo =<< 0!@#$%^&*()_+
|
||||
line1
|
||||
line2
|
||||
0!@#$%^&*()_+
|
||||
|
||||
var foo =<< A!@#$%^&*()_+
|
||||
line1
|
||||
line2
|
||||
A!@#$%^&*()_+
|
||||
|
||||
# error - leading lowercase character
|
||||
var foo =<< a!@#$%^&*()_+
|
||||
line1
|
||||
line2
|
||||
a!@#$%^&*()_+
|
||||
|
||||
@ -13,6 +13,60 @@ line1
|
||||
line2
|
||||
END
|
||||
|
||||
let [foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [foo, bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [foo,
|
||||
\ bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let g:foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
let g:foo =<< END
|
||||
line1
|
||||
line2
|
||||
END
|
||||
|
||||
let [g:foo, g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [g:foo, g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [g:foo,
|
||||
\ g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
let [g:foo,
|
||||
\ g:bar] =<< EOS
|
||||
line1
|
||||
line2
|
||||
EOS
|
||||
|
||||
|
||||
" trim
|
||||
|
||||
|
||||
Reference in New Issue
Block a user