Skip to content

Commit

Permalink
Merge pull request #21 from haya14busa/parse-syntax-cmd
Browse files Browse the repository at this point in the history
Parse syntax cmd
  • Loading branch information
haya14busa committed Sep 27, 2016
2 parents b757ec1 + 4b98d03 commit 0e91d5a
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 2 deletions.
14 changes: 13 additions & 1 deletion autoload/vimlparser.vim
Expand Up @@ -896,6 +896,8 @@ function! s:VimLParser._parse_command(parser) abort
call self.parse_cmd_while()
elseif a:parser == 'parse_wincmd'
call self.parse_wincmd()
elseif a:parser == 'parse_cmd_syntax'
call self.parse_cmd_syntax()
endif
endfunction

Expand Down Expand Up @@ -1935,6 +1937,16 @@ function! s:VimLParser.parse_wincmd()
call self.add_node(node)
endfunction

" FIXME: validate argument
function! s:VimLParser.parse_cmd_syntax()
let end = self.separate_nextcmd()
let node = s:Node(s:NODE_EXCMD)
let node.pos = self.ea.cmdpos
let node.ea = self.ea
let node.str = self.reader.getstr(self.ea.linepos, end)
call self.add_node(node)
endfunction

let s:VimLParser.neovim_additional_commands = [
\ {'name': 'tnoremap', 'minlen': 8, 'flags': 'EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN', 'parser': 'parse_cmd_common'}]

Expand Down Expand Up @@ -2364,7 +2376,7 @@ let s:VimLParser.builtin_commands = [
\ {'name': 'suspend', 'minlen': 3, 'flags': 'TRLBAR|BANG|CMDWIN', 'parser': 'parse_cmd_common'},
\ {'name': 'sview', 'minlen': 2, 'flags': 'BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR', 'parser': 'parse_cmd_common'},
\ {'name': 'swapname', 'minlen': 2, 'flags': 'TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_common'},
\ {'name': 'syntax', 'minlen': 2, 'flags': 'EXTRA|NOTRLCOM|CMDWIN', 'parser': 'parse_cmd_syntax'},
\ {'name': 'syntime', 'minlen': 5, 'flags': 'NEEDARG|WORD1|TRLBAR|CMDWIN', 'parser': 'parse_cmd_common'},
\ {'name': 'syncbind', 'minlen': 4, 'flags': 'TRLBAR', 'parser': 'parse_cmd_common'},
\ {'name': 't', 'minlen': 1, 'flags': 'RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY', 'parser': 'parse_cmd_common'},
Expand Down
2 changes: 1 addition & 1 deletion go/builtin_commands.go
Expand Up @@ -453,7 +453,7 @@ var builtin_commands = []*Cmd{
{flags: "TRLBAR|BANG|CMDWIN", minlen: 3, name: "suspend", parser: "parse_cmd_common"},
{flags: "BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR", minlen: 2, name: "sview", parser: "parse_cmd_common"},
{flags: "TRLBAR|CMDWIN", minlen: 2, name: "swapname", parser: "parse_cmd_common"},
{flags: "EXTRA|NOTRLCOM|CMDWIN", minlen: 2, name: "syntax", parser: "parse_cmd_common"},
{flags: "EXTRA|NOTRLCOM|CMDWIN", minlen: 2, name: "syntax", parser: "parse_cmd_syntax"},
{flags: "NEEDARG|WORD1|TRLBAR|CMDWIN", minlen: 5, name: "syntime", parser: "parse_cmd_common"},
{flags: "TRLBAR", minlen: 4, name: "syncbind", parser: "parse_cmd_common"},
{flags: "RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY", minlen: 1, name: "t", parser: "parse_cmd_common"},
Expand Down
12 changes: 12 additions & 0 deletions go/vimlparser.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions test/test_syncmd.ok
@@ -0,0 +1,5 @@
(if 1
(excmd "syntax on "))
(excmd "syntax")
(excmd "syntax enable")
(excmd "syntax list GroupName")
4 changes: 4 additions & 0 deletions test/test_syncmd.vim
@@ -0,0 +1,4 @@
if 1 | syntax on | endif
syntax
syntax enable
syntax list GroupName

0 comments on commit 0e91d5a

Please sign in to comment.