Files
Doug Kearns 9e4e00710c patch 9.2.0910: runtime(vim): Update syntax, contain Ex commands
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>
2026-08-04 21:00:38 +00:00

88 lines
784 B
VimL

" Vim :< command
<
<<
<<<
< <
< < <
< 42
<< 42
<<< 42
< l
< p
< #
<< l
<< p
<< #
< lp#
<< lp#
< 42 l
< 42 p
< 42 #
<< 42 l
<< 42 p
<< 42 #
< 42 lp#
<< 42 lp#
< | echo "..."
< " comment
< < | echo "..."
< < " comment
< 42 | echo "..."
< 42 " comment
< l | echo "..."
< l " comment
def Vim9Context()
# FIXME: differentiate operator and command when operators are contained
# <
:<
:< <
:< <<
:< <
:< < <
:< 42
:< < 42
:< << 42
:< l
:< p
:< #
:< < l
:< < p
:< < #
:< lp#
:< < lp#
:< 42 l
:< 42 p
:< 42 #
:< < 42 l
:< < 42 p
:< < 42 #
:< 42 lp#
:<< 42 lp#
:< | echo "..."
:< # comment
:< < | echo "..."
:< < # comment
:< 42 | echo "..."
:< 42 # comment
:< l | echo "..."
:< l # comment
enddef