0
0
mirror of https://github.com/vim/vim.git synced 2025-08-26 20:03:41 -04:00
vim/runtime/syntax/testdir/input/vim_ex_command.vim
Aliaksei Budavei af2c8e256a
runtime(syntax-tests): Break up non-ASCII over-75-byte-long lines
And anticipate occasional multibyte line wrapping owing to:
> A poorly rendered line may otherwise become wrapped when enough of
> spurious U+FFFD (0xEF 0xBF 0xBD) characters claim more columns than
> are available (75) and then invalidate line correspondence under test.

Observe that for "vim_ex_command.vim" another workaround is
chosen: the long line containing an only multibyte character
near its EOL is conversely made longer by padding and moving
the character to a separate _tail_ part of the wrapped line.
That is, the _head_ part of the line is all ASCII characters
and the wrapped _tail_ part is a mix of various characters
whose total byte count is within bounds.

Other unmodified tracked files of interest:
  java_lambda_expressions.java,
  java_lambda_expressions_signature.java,
  java_numbers.java,
  markdown_conceal.markdown,
  vim9_generic_function_example_set.vim

Also, remove stray U+FFFC (0xEF 0xBF 0xBC) characters.

Related to #16559 and #17704.

Reference:
0fde6aebdd/runtime/syntax/testdir/README.txt (L120-L123)

closes: #17868

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-08-06 12:50:30 +02:00

171 lines
3.4 KiB
VimL

" Vim :command, :delcommand and :comclear commands
" VIM_TEST_SETUP hi link vimUserCmdName Todo
" VIM_TEST_SETUP hi link vimDelcommandName Todo
" List
command
command F
" Define
command Foo echo "Foo"
command! Foo echo "Foo"
command! Foo echo "Foo" | echo "Bar"
command! Foo {
echo "Foo"
echo "Bar"
echo "Baz"
}
command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo echo "Foo"
command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo
\ echo "Foo"
command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register
\ Foo
\ echo "Foo"
command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register Foo
"\ comment
\ echo "Foo"
command! -addr=arguments -bang -bar -buffer -complete=arglist -count=1 -keepscript -nargs=* -range=% -register
"\ comment
\ Foo
"\ comment
\ echo "Foo"
command! -complete=custom,s:Completer1 Foo echo "Foo"
command! -complete=customlist,s:Completer2 Foo echo "Foo"
function Foo()
command! Foo echo "Foo (defined in :function)"
endfunction
def Foo2()
command! Foo echo "Foo (defined in :def)"
enddef
" Multiline define
command! -addr=lines
\ -bang
\ -bar
\ -buffer
\ -complete=buffer
\ -count
\ -nargs=*
\ -range
\ -register
\ -keepscript
\ Foo
\ echo "Foo" |
\ echo "Bar"
command!
\ -addr=lines
\ -bang
\ -bar
\ -buffer
\ -complete=buffer
\ -count
\ -nargs=*
\ -range
\ -register
\ -keepscript
\ Foo
\ echo "Foo" |
\ echo "Bar"
command!
"\ comment
\ -addr=lines
\ -bang
"\ comment
"\ comment
\ -bar
\ -buffer
"\ comment
\ -complete=buffer
"\ comment
\ -count
"\ comment
\ -nargs=*
"\ comment
\ -range
"\ comment
\ -register
"\ comment
\ -keepscript
"\ comment
\ Foo
"\ comment
\ echo "Foo" |
"\ comment
\ echo "Bar"
" Errors
command! -badattr=arguments -bang -badattr -nargs=* Foo echo "Foo"
" Delete
delcommand Foo
delcommand -buffer Foo
delcommand Foo | echo "Foo"
delcommand -buffer Foo | echo "Foo"
delcommand Foo " comment
delcommand -buffer Foo " comment
comclear
comclear " comment
comclear | echo "Foo"
" Issue #14135 (vim.vim syntax highlighting broken wrt system())
com Foo call system('ls')
" Issue #17001 (Wrong vimUserCmdAttrError highlighting in vim.vim)
command! -bang -nargs=* -complete=file Make AsyncRun -program=make @ <args>
" Issue #17326 (syntax highlighting breaks with complex :s comamnd)
command -range=% -nargs=? -bang Tb {
if "<bang>" == "!"
:<line1>,<line2>s/\v"[^"]*"/\=substitute(submatch(0), " ", "•", "g")/ge
endif
if "<args>" == ""
:<line1>,<line2>!column -t
else
:<line1>,<line2>!column -t -s'<args>'
endif
if "<bang>" == "!"
:<line1>,<line2>s/•/ /ge
endif
}
command -range=% -nargs=? -bang Tb :<line1>,<line2>s/\v"[^"]*"/\=substitute(submatch(0), " ", "•", "g")/ge
" Unreported issue (:map with trailing bar in replacement text)
command! Foo
\ map lhs rhs |
\ abbreviate foo bar |
\ echo "Foo"