mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
runtime(vim): Update syntax file, improve :substitute matching (#14093)
- Differentiate between :substitute and substitute(), fixes #13883. - Match all allowed :substitute delimiters. - Remove leading context from :substitute matches. Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
86
runtime/syntax/testdir/input/vim_ex_substitute.vim
Normal file
86
runtime/syntax/testdir/input/vim_ex_substitute.vim
Normal file
@@ -0,0 +1,86 @@
|
||||
substitute/foo/bar/&
|
||||
substitute/foo/bar/cegiInp#lr
|
||||
|
||||
snomagic/foo/bar/&
|
||||
snomagic/foo/bar/cegiInp#lr
|
||||
|
||||
smagic/foo/bar/&
|
||||
smagic/foo/bar/cegiInp#lr
|
||||
|
||||
:substitute/foo/bar/&
|
||||
:substitute/foo/bar/cegiInp#lr
|
||||
|
||||
:snomagic/foo/bar/&
|
||||
:snomagic/foo/bar/cegiInp#lr
|
||||
|
||||
:smagic/foo/bar/&
|
||||
:smagic/foo/bar/cegiInp#lr
|
||||
|
||||
call Foo() | substitute/foo/bar/&
|
||||
call Foo() | substitute/foo/bar/cegiInp#lr
|
||||
|
||||
call Foo() | snomagic/foo/bar/&
|
||||
call Foo() | snomagic/foo/bar/cegiInp#lr
|
||||
|
||||
call Foo() | smagic/foo/bar/&
|
||||
call Foo() | smagic/foo/bar/cegiInp#lr
|
||||
|
||||
let foo = str->substitute(str, pat, sub, flags)
|
||||
|
||||
function Foo()
|
||||
substitute/foo/bar/
|
||||
let bar = str->substitute(str, pat, sub, flags)
|
||||
endfunction
|
||||
|
||||
def Foo()
|
||||
substitute/foo/bar/
|
||||
let bar = str->substitute(str, pat, sub, flags)
|
||||
enddef
|
||||
|
||||
" various delimiters
|
||||
|
||||
s!/!//! " comment
|
||||
" s"/"//" " comment (works but disallowed)
|
||||
s#/#//# " comment
|
||||
s$/$//$ " comment
|
||||
s%/%//% " comment
|
||||
s&/&//& " comment
|
||||
s'/'//' " comment
|
||||
" FIXME - matches vimUserFunc
|
||||
" s(/(//( " comment
|
||||
s)/)//) " comment
|
||||
s*/*//* " comment
|
||||
s+/+//+ " comment
|
||||
s,/,//, " comment
|
||||
s-/-//- " comment
|
||||
s././/. " comment
|
||||
s/X/XX/ " comment
|
||||
s:/://: " comment
|
||||
s;/;//; " comment
|
||||
s</<//< " comment
|
||||
s=/=//= " comment
|
||||
s>/>//> " comment
|
||||
s?/?//? " comment
|
||||
s@/@//@ " comment
|
||||
s[/[//[ " comment
|
||||
" s\/\//\ " comment (disallowed)
|
||||
s]/]//] " comment
|
||||
s^/^//^ " comment
|
||||
s_/_//_ " comment
|
||||
s`/`//` " comment
|
||||
s{/{//{ " comment
|
||||
" s|/|//| " comment (disallowed)
|
||||
s}/}//} " comment
|
||||
s~/~//~ " comment
|
||||
|
||||
|
||||
" Issue #13883
|
||||
|
||||
str[s]
|
||||
str(s)
|
||||
|
||||
def Test()
|
||||
str[s]
|
||||
str(s)
|
||||
enddef
|
||||
|
Reference in New Issue
Block a user