Skip to content

Commit 1cbdfa8

Browse files
committed
fix parse :syntax with <bar>
1 parent 2fff43c commit 1cbdfa8

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

autoload/vimlparser.vim

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1818,6 +1818,16 @@ function! s:VimLParser.parse_wincmd()
18181818
call self.add_node(node)
18191819
endfunction
18201820

1821+
" FIXME: validate argument
1822+
function! s:VimLParser.parse_cmd_syntax()
1823+
let end = self.separate_nextcmd()
1824+
let node = s:Node(s:NODE_EXCMD)
1825+
let node.pos = self.ea.cmdpos
1826+
let node.ea = self.ea
1827+
let node.str = self.reader.getstr(self.ea.linepos, end)
1828+
call self.add_node(node)
1829+
endfunction
1830+
18211831
let s:VimLParser.neovim_additional_commands = [
18221832
\ {'name': 'tnoremap', 'minlen': 8, 'flags': 'EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN', 'parser': 'parse_cmd_common'}]
18231833

@@ -2247,7 +2257,7 @@ let s:VimLParser.builtin_commands = [
22472257
\ {'name': 'suspend', 'minlen': 3, 'flags': 'TRLBAR|BANG|CMDWIN', 'parser': 'parse_cmd_common'},
22482258
\ {'name': 'sview', 'minlen': 2, 'flags': 'BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR', 'parser': 'parse_cmd_common'},
22492259
\ {'name': 'swapname', 'minlen': 2, 'flags': 'TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
2250-
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_common'},
2260+
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_syntax'},
22512261
\ {'name': 'syntime', 'minlen': 5, 'flags': 'NEEDARG|WORD1|TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
22522262
\ {'name': 'syncbind', 'minlen': 4, 'flags': 'TRLBAR', 'parser': 'parse_cmd_common'},
22532263
\ {'name': 't', 'minlen': 1, 'flags': 'RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY', 'parser': 'parse_cmd_common'},

test/test_syncmd.ok

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
(if 1
2+
(excmd "syntax on "))
3+
(excmd "syntax")
4+
(excmd "syntax enable")
5+
(excmd "syntax list GroupName")

test/test_syncmd.vim

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
if 1 | syntax on | endif
2+
syntax
3+
syntax enable
4+
syntax list GroupName

0 commit comments

Comments
 (0)