mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-10-06 18:37:27 +02:00
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>
200 lines
1.4 KiB
VimL
200 lines
1.4 KiB
VimL
" Vim :append command
|
|
" VIM_TEST_SETUP let g:vimsyn_folding = "T"
|
|
" VIM_TEST_SETUP setl fdc=2 fdl=999 fdm=syntax
|
|
|
|
" NOTE: legacy Vim script only
|
|
|
|
|
|
append
|
|
.
|
|
|
|
append!
|
|
.
|
|
|
|
append | line0
|
|
.
|
|
|
|
append! | line0
|
|
.
|
|
|
|
append
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append!
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append " comment
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append! " comment
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append | line0
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append! | line0
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append | " line0 of input text
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append! | " line0 of input text
|
|
line1
|
|
line2
|
|
.
|
|
|
|
append | echo "line0 of input text"
|
|
line0
|
|
line2
|
|
.
|
|
|
|
append! | echo "line0 of input text"
|
|
line1
|
|
line2
|
|
.
|
|
|
|
|
|
" empty first line
|
|
|
|
|
|
append
|
|
|
|
.
|
|
|
|
append!
|
|
|
|
.
|
|
|
|
append
|
|
|
|
line2
|
|
.
|
|
|
|
append!
|
|
|
|
line2
|
|
.
|
|
|
|
append " comment
|
|
|
|
line2
|
|
.
|
|
|
|
append! " comment
|
|
|
|
line2
|
|
.
|
|
|
|
append | line0
|
|
|
|
line2
|
|
.
|
|
|
|
append! | line0
|
|
|
|
line2
|
|
.
|
|
|
|
append | " line0 of input text
|
|
|
|
line2
|
|
.
|
|
|
|
append! | " line0 of input text
|
|
|
|
line2
|
|
.
|
|
|
|
append | echo "line0 of input text"
|
|
|
|
line2
|
|
.
|
|
|
|
append! | echo "line0 of input text"
|
|
|
|
line2
|
|
.
|
|
|
|
|
|
" no early termination
|
|
" NOTE: 'autoindent' end marker not supported
|
|
|
|
append
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
function Foo()
|
|
append
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append!
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append " comment
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append! " comment
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append | line0
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append! | line0
|
|
.
|
|
.
|
|
.
|
|
.
|
|
|
|
append
|
|
endfunction
|
|
.
|
|
append!
|
|
ndfunction
|
|
.
|
|
append " comment
|
|
endfunction
|
|
.
|
|
append! " comment
|
|
endfunction
|
|
.
|
|
append | line0
|
|
endfunction
|
|
.
|
|
append! | line0
|
|
endfuncion
|
|
.
|
|
endfunction
|
|
|
|
|