Problem: Vim Syntax Script can be improved
Solution: Rework syntax script, update syntax tests and unit tests
(Doug Kearns).
- Contain Ex commands to valid syntactic contexts.
- Add full address (:range) matching.
- Match :Next, :Print, :X, :global, :&, :~, :>, :<, :# and := commands.
- Match text input commands with folding.
Use :syn-keyword to match all commands except when immediately following
\w range characters where :syn-match is employed.
fixes: #20250 (variables with s_ prefix are wrongly highlighted)
fixes: #17543 (do not highlight vim commands within :runtime)
fixes: #16937 (do not highlight vim commands after packadd)
fixes: #14895 (incorrect highlighting of Vim syntax)
fixes: #14020 (insert commands)
closes: #19331
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
65 lines
847 B
VimL
65 lines
847 B
VimL
" Vim :echo commands
|
|
|
|
|
|
echo "Answer = " 42
|
|
echon "Answer = " 42
|
|
echomsg "Answer = " 42
|
|
echowindow "Answer = " 42
|
|
echoerr "Answer = " 42
|
|
echoconsole "Answer = " 42
|
|
|
|
|
|
" Trailing bar vs OR operator
|
|
|
|
" OR operator
|
|
echo foo || bar
|
|
echo foo ||
|
|
\ bar
|
|
|
|
" following command is :|
|
|
echo "Foo" | |
|
|
|
|
" invalid expression
|
|
echo "Foo" ||
|
|
|
|
echohl WarningMsg | echo "Don't panic!" | echohl None
|
|
|
|
|
|
" Line continuations
|
|
|
|
echo "Answer = "
|
|
"\ comment
|
|
\ 42
|
|
|
|
echo
|
|
\ "Answer = "
|
|
"\ comment
|
|
\ 42
|
|
|
|
echo "Foo"
|
|
\| echo "bar"
|
|
|
|
echo "Foo"|
|
|
\ echo "bar"
|
|
|
|
|
|
" Trailing bar and comments
|
|
|
|
" :echo without {expr}
|
|
echo| echo "Foo"
|
|
|
|
" trailing comment needs |
|
|
echo "Foo" | " comment
|
|
|
|
|
|
" Issue #9987 (parenthesised argument - not a function call)
|
|
|
|
let foo = {'end': 123}
|
|
|
|
if 123
|
|
echo (foo.end)
|
|
else
|
|
echo 'bar'
|
|
endif
|
|
|