diff options
author | dkearns <dougkearns@gmail.com> | 2024-04-11 06:18:37 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-10 22:18:37 +0200 |
commit | 04e5363b823827f144409df011376d00ea6df750 (patch) | |
tree | 894ad23caca1e10fb4e71bf6b0ee95890ab47e0c /runtime/syntax/testdir/input | |
parent | 1817ccdb107ceeaf5c48fe193da5146682c15ca6 (diff) |
runtime(vim): Improve Vim9 and legacy-script comment highlighting (#13104)
This is a first-pass attempt to limit matching of Vim9 and legacy-script
comments to the appropriate syntactic contexts.
Vim9-script comments are highlighted at top level in a Vim9-script file,
in all :def functions, and in all :autocmd and :commmand command blocks.
Legacy-script comments are highlighted at top level in a legacy script
file, in all :func functions and in the Vim9-script preamble before the
:vim9script marker command.
Fixes #13047, #11307 and #9587.
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime/syntax/testdir/input')
-rw-r--r-- | runtime/syntax/testdir/input/vim9_keymap.vim | 26 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim9_legacy_header.vim | 16 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim_ex_commands.vim | 4 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim_ex_comment-vim9.vim | 41 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim_ex_comment.vim | 45 | ||||
-rw-r--r-- | runtime/syntax/testdir/input/vim_keymap.vim | 3 |
6 files changed, 132 insertions, 3 deletions
diff --git a/runtime/syntax/testdir/input/vim9_keymap.vim b/runtime/syntax/testdir/input/vim9_keymap.vim new file mode 100644 index 0000000000..a69b723a73 --- /dev/null +++ b/runtime/syntax/testdir/input/vim9_keymap.vim @@ -0,0 +1,26 @@ +vim9script + +# Vim Keymap file for syntax testing + +scriptencoding utf-8 + +let b:keymap_name = "syntax-test" + +loadkeymap + +# Line comment + + # Another line comment + +a A Basic mapping +'a รก More than one char in first column + +# Special notation +<char-62> B Special notation allowed in LHS - decimal +c <char-0103> Special notation allowed in RHS - octal +<char-0x0064> <char-0x0044> Special notation allowed in LHS and RHS - hexadecimal + +# Vim-script comment characters +\# <char-0x00a3> Line should not match as a Vim9-script comment +" โ Line should not match as a legacy-script comment +: # Line should not match as a Vim9-script comment diff --git a/runtime/syntax/testdir/input/vim9_legacy_header.vim b/runtime/syntax/testdir/input/vim9_legacy_header.vim new file mode 100644 index 0000000000..66aeb39612 --- /dev/null +++ b/runtime/syntax/testdir/input/vim9_legacy_header.vim @@ -0,0 +1,16 @@ +" comment + +if !has('vim9script') + # 42 " comment + source foo.vim + finish +endif + +" comment + +vim9script noclear + +# comment + + # string only recognised with leading char + "useless string" diff --git a/runtime/syntax/testdir/input/vim_ex_commands.vim b/runtime/syntax/testdir/input/vim_ex_commands.vim index 571fd7ba1a..aaa351bd33 100644 --- a/runtime/syntax/testdir/input/vim_ex_commands.vim +++ b/runtime/syntax/testdir/input/vim_ex_commands.vim @@ -558,7 +558,7 @@ :verbose :vertical :vim9cmd -:vim9script +" :vim9script :vimgrep :vimgrepadd :visual @@ -1152,7 +1152,7 @@ call Foo() | version call Foo() | verbose call Foo() | vertical call Foo() | vim9cmd -call Foo() | vim9script +" call Foo() | vim9script call Foo() | vimgrep call Foo() | vimgrepadd call Foo() | visual diff --git a/runtime/syntax/testdir/input/vim_ex_comment-vim9.vim b/runtime/syntax/testdir/input/vim_ex_comment-vim9.vim new file mode 100644 index 0000000000..786d11b43f --- /dev/null +++ b/runtime/syntax/testdir/input/vim_ex_comment-vim9.vim @@ -0,0 +1,41 @@ +vim9script + +# Vim comments + +# Vim9-script comment + + # string only recognised with leading char + "useless string" + +function! Foo() + " Legacy-script comment + # 42 " comment +endfunction + +def! Bar() + # Vim9-script comment + "useless string" # comment +enddef + +command -count FooCommand { + # Vim9-script comment + "useless string" # comment +} + +autocmd BufNewFile * { + # Vim9-script comment + "useless string" # comment +} + + +# Issue: #13047 + +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit %% | 0d_ | diffthis + \ | wincmd p | diffthis +endif + + +# Issue: #11307 and #11560 + +# This is what we call " blah diff --git a/runtime/syntax/testdir/input/vim_ex_comment.vim b/runtime/syntax/testdir/input/vim_ex_comment.vim new file mode 100644 index 0000000000..54e514eaa3 --- /dev/null +++ b/runtime/syntax/testdir/input/vim_ex_comment.vim @@ -0,0 +1,45 @@ +" Vim comments + +" Legacy-script comment + +# 42 " comment + +function! Foo() + " Legacy-script comment + # 42 " comment +endfunction + +def! Bar() + # Vim9-script comment + "useless string" # comment +enddef + +command -nargs=1 FooCommand { + # Vim9-script comment + "useless string" # comment +} + +autocmd BufNewFile * { + # Vim9-script comment + "useless string" # comment +} + + +" Issue: #13047 + +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif + + +" Issue: #11307 and #11560 + +" This is what we call " blah + + +" Issue # #9587 + +def CommentTitle() + # Title: ... +enddef diff --git a/runtime/syntax/testdir/input/vim_keymap.vim b/runtime/syntax/testdir/input/vim_keymap.vim index 983c822c55..424d437a67 100644 --- a/runtime/syntax/testdir/input/vim_keymap.vim +++ b/runtime/syntax/testdir/input/vim_keymap.vim @@ -23,4 +23,5 @@ c <char-0103> Special notation allowed in RHS - octal " Vim-script comment characters # <char-0x00a3> Line should not match as a Vim9-script comment -\" โ Line should not match as a legacy-script comment +\" โ Line should not match as a legacy-script comment +: " Line should not match as a legacy-script comment |