@@ -1820,6 +1820,30 @@ function! s:VimLParser.parse_wincmd()
18201820 call self .add_node (node)
18211821endfunction
18221822
1823+ " FIXME: validate argument
1824+ function ! s: VimLParser .parse_cmd_syntax ()
1825+ let end = self .reader.getpos ()
1826+ while 1
1827+ let end = self .reader.getpos ()
1828+ let c = self .reader.peek ()
1829+ if c == " /" || c == " '" || c == " \" "
1830+ call self .reader.getn (1 )
1831+ call self .parse_pattern (c )
1832+ elseif c == " ="
1833+ call self .reader.getn (1 )
1834+ call self .parse_pattern (" " )
1835+ elseif self .ends_excmds (c )
1836+ break
1837+ endif
1838+ call self .reader.getn (1 )
1839+ endwhile
1840+ let node = s: Node (s: NODE_EXCMD )
1841+ let node.pos = self .ea .cmdpos
1842+ let node.ea = self .ea
1843+ let node.str = self .reader.getstr (self .ea .linepos, end )
1844+ call self .add_node (node)
1845+ endfunction
1846+
18231847let s: VimLParser .neovim_additional_commands = [
18241848 \ {' name' : ' tnoremap' , ' minlen' : 8 , ' flags' : ' EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN' , ' parser' : ' parse_cmd_common' }]
18251849
@@ -2249,7 +2273,7 @@ let s:VimLParser.builtin_commands = [
22492273 \ {' name' : ' suspend' , ' minlen' : 3 , ' flags' : ' TRLBAR|BANG|CMDWIN' , ' parser' : ' parse_cmd_common' },
22502274 \ {' name' : ' sview' , ' minlen' : 2 , ' flags' : ' BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR' , ' parser' : ' parse_cmd_common' },
22512275 \ {' name' : ' swapname' , ' minlen' : 2 , ' flags' : ' TRLBAR|CMDWIN' , ' parser' : ' parse_cmd_common' },
2252- \ {' name' : ' syntax' , ' minlen' : 2 , ' flags' : ' EXTRA|NOTRLCOM|CMDWIN' , ' parser' : ' parse_cmd_common ' },
2276+ \ {' name' : ' syntax' , ' minlen' : 2 , ' flags' : ' EXTRA|NOTRLCOM|CMDWIN' , ' parser' : ' parse_cmd_syntax ' },
22532277 \ {' name' : ' syntime' , ' minlen' : 5 , ' flags' : ' NEEDARG|WORD1|TRLBAR|CMDWIN' , ' parser' : ' parse_cmd_common' },
22542278 \ {' name' : ' syncbind' , ' minlen' : 4 , ' flags' : ' TRLBAR' , ' parser' : ' parse_cmd_common' },
22552279 \ {' name' : ' t' , ' minlen' : 1 , ' flags' : ' RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY' , ' parser' : ' parse_cmd_common' },
0 commit comments