Skip to content

Commit 3c15c6a

Browse files
committed
fix parse_cmd_syntax
1 parent 0e91d5a commit 3c15c6a

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

autoload/vimlparser.vim

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1939,7 +1939,21 @@ endfunction
19391939

19401940
" FIXME: validate argument
19411941
function! s:VimLParser.parse_cmd_syntax()
1942-
let end = self.separate_nextcmd()
1942+
let end = self.reader.getpos()
1943+
while s:TRUE
1944+
let end = self.reader.getpos()
1945+
let c = self.reader.peek()
1946+
if c == "/" || c == "'" || c == "\""
1947+
call self.reader.getn(1)
1948+
call self.parse_pattern(c)
1949+
elseif c == "="
1950+
call self.reader.getn(1)
1951+
call self.parse_pattern(" ")
1952+
elseif self.ends_excmds(c)
1953+
break
1954+
endif
1955+
call self.reader.getn(1)
1956+
endwhile
19431957
let node = s:Node(s:NODE_EXCMD)
19441958
let node.pos = self.ea.cmdpos
19451959
let node.ea = self.ea

test/test_syncmd.ok

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
(excmd "syntax")
44
(excmd "syntax enable")
55
(excmd "syntax list GroupName")
6+
(excmd "syn match pythonError \"[&|]\\{2,}\" display")
7+
(excmd "syntax match qfFileName /^\\zs\\S[^|]\\+\\/\\ze[^|\\/]\\+\\/[^|\\/]\\+|/ conceal cchar=+")
8+
(excmd "syntax region jsString start=+\"+ skip=+\\\\\\(\"\\|$\\)+ end=+\"\\|$+ contains=jsSpecial,@Spell extend")

test/test_syncmd.vim

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,6 @@ if 1 | syntax on | endif
22
syntax
33
syntax enable
44
syntax list GroupName
5+
syn match pythonError "[&|]\{2,}" display
6+
syntax match qfFileName /^\zs\S[^|]\+\/\ze[^|\/]\+\/[^|\/]\+|/ conceal cchar=+
7+
syntax region jsString start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contains=jsSpecial,@Spell extend

0 commit comments

Comments
 (0)