Skip to content

Commit 0e91d5a

Browse files
authored
Merge pull request #21 from haya14busa/parse-syntax-cmd
Parse syntax cmd
2 parents b757ec1 + 4b98d03 commit 0e91d5a

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

autoload/vimlparser.vim

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,8 @@ function! s:VimLParser._parse_command(parser) abort
896896
call self.parse_cmd_while()
897897
elseif a:parser == 'parse_wincmd'
898898
call self.parse_wincmd()
899+
elseif a:parser == 'parse_cmd_syntax'
900+
call self.parse_cmd_syntax()
899901
endif
900902
endfunction
901903

@@ -1935,6 +1937,16 @@ function! s:VimLParser.parse_wincmd()
19351937
call self.add_node(node)
19361938
endfunction
19371939

1940+
" FIXME: validate argument
1941+
function! s:VimLParser.parse_cmd_syntax()
1942+
let end = self.separate_nextcmd()
1943+
let node = s:Node(s:NODE_EXCMD)
1944+
let node.pos = self.ea.cmdpos
1945+
let node.ea = self.ea
1946+
let node.str = self.reader.getstr(self.ea.linepos, end)
1947+
call self.add_node(node)
1948+
endfunction
1949+
19381950
let s:VimLParser.neovim_additional_commands = [
19391951
\ {'name': 'tnoremap', 'minlen': 8, 'flags': 'EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN', 'parser': 'parse_cmd_common'}]
19401952

@@ -2364,7 +2376,7 @@ let s:VimLParser.builtin_commands = [
23642376
\ {'name': 'suspend', 'minlen': 3, 'flags': 'TRLBAR|BANG|CMDWIN', 'parser': 'parse_cmd_common'},
23652377
\ {'name': 'sview', 'minlen': 2, 'flags': 'BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR', 'parser': 'parse_cmd_common'},
23662378
\ {'name': 'swapname', 'minlen': 2, 'flags': 'TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
2367-
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_common'},
2379+
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_syntax'},
23682380
\ {'name': 'syntime', 'minlen': 5, 'flags': 'NEEDARG|WORD1|TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
23692381
\ {'name': 'syncbind', 'minlen': 4, 'flags': 'TRLBAR', 'parser': 'parse_cmd_common'},
23702382
\ {'name': 't', 'minlen': 1, 'flags': 'RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY', 'parser': 'parse_cmd_common'},

go/builtin_commands.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ var builtin_commands = []*Cmd{
453453
{flags: "TRLBAR|BANG|CMDWIN", minlen: 3, name: "suspend", parser: "parse_cmd_common"},
454454
{flags: "BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR", minlen: 2, name: "sview", parser: "parse_cmd_common"},
455455
{flags: "TRLBAR|CMDWIN", minlen: 2, name: "swapname", parser: "parse_cmd_common"},
456-
{flags: "EXTRA|NOTRLCOM|CMDWIN", minlen: 2, name: "syntax", parser: "parse_cmd_common"},
456+
{flags: "EXTRA|NOTRLCOM|CMDWIN", minlen: 2, name: "syntax", parser: "parse_cmd_syntax"},
457457
{flags: "NEEDARG|WORD1|TRLBAR|CMDWIN", minlen: 5, name: "syntime", parser: "parse_cmd_common"},
458458
{flags: "TRLBAR", minlen: 4, name: "syncbind", parser: "parse_cmd_common"},
459459
{flags: "RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY", minlen: 1, name: "t", parser: "parse_cmd_common"},

go/vimlparser.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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)