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

87 lines
793 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