@@ -142,6 +142,7 @@ let s:NODE_CONST = 94
142
142
let s: NODE_EVAL = 95
143
143
let s: NODE_HEREDOC = 96
144
144
let s: NODE_METHOD = 97
145
+ let s: NODE_ECHOCONSOLE = 98
145
146
146
147
let s: TOKEN_EOF = 1
147
148
let s: TOKEN_EOL = 2
@@ -833,6 +834,8 @@ function! s:VimLParser._parse_command(parser) abort
833
834
call self .parse_cmd_delfunction ()
834
835
elseif a: parser == # ' parse_cmd_echo'
835
836
call self .parse_cmd_echo ()
837
+ elseif a: parser == # ' parse_cmd_echoconsole'
838
+ call self .parse_cmd_echoconsole ()
836
839
elseif a: parser == # ' parse_cmd_echoerr'
837
840
call self .parse_cmd_echoerr ()
838
841
elseif a: parser == # ' parse_cmd_echohl'
@@ -1936,6 +1939,14 @@ function! s:VimLParser.parse_cmd_echoerr() abort
1936
1939
call self .add_node (node)
1937
1940
endfunction
1938
1941
1942
+ function ! s: VimLParser .parse_cmd_echoconsole () abort
1943
+ let node = s: Node (s: NODE_ECHOCONSOLE )
1944
+ let node.pos = self .ea .cmdpos
1945
+ let node.ea = self .ea
1946
+ let node.list = self .parse_exprlist ()
1947
+ call self .add_node (node)
1948
+ endfunction
1949
+
1939
1950
function ! s: VimLParser .parse_cmd_execute () abort
1940
1951
let node = s: Node (s: NODE_EXECUTE )
1941
1952
let node.pos = self .ea .cmdpos
@@ -2303,7 +2314,7 @@ let s:VimLParser.builtin_commands = [
2303
2314
\ {' name' : ' echoerr' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_echoerr' },
2304
2315
\ {' name' : ' echohl' , ' minlen' : 5 , ' flags' : ' EXTRA|TRLBAR|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_echohl' },
2305
2316
\ {' name' : ' echomsg' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_echomsg' },
2306
- \ {' name' : ' echoconsole' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_common ' },
2317
+ \ {' name' : ' echoconsole' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_echoconsole ' },
2307
2318
\ {' name' : ' echon' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_echon' },
2308
2319
\ {' name' : ' else' , ' minlen' : 2 , ' flags' : ' TRLBAR|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_else' },
2309
2320
\ {' name' : ' elseif' , ' minlen' : 5 , ' flags' : ' EXTRA|NOTRLCOM|EXPR_ARG|SBOXOK|CMDWIN|LOCK_OK' , ' parser' : ' parse_cmd_elseif' },
@@ -5012,6 +5023,9 @@ function! s:Compiler.compile(node) abort
5012
5023
elseif a: node .type == # s: NODE_ECHOERR
5013
5024
call self .compile_echoerr (a: node )
5014
5025
return s: NIL
5026
+ elseif a: node .type == # s: NODE_ECHOCONSOLE
5027
+ call self .compile_echoconsole (a: node )
5028
+ return s: NIL
5015
5029
elseif a: node .type == # s: NODE_EXECUTE
5016
5030
call self .compile_execute (a: node )
5017
5031
return s: NIL
@@ -5376,6 +5390,11 @@ function! s:Compiler.compile_echoerr(node) abort
5376
5390
call self .out (' (echoerr %s)' , join (list , ' ' ))
5377
5391
endfunction
5378
5392
5393
+ function ! s: Compiler .compile_echoconsole (node) abort
5394
+ let list = map (a: node .list , ' self.compile(v:val)' )
5395
+ call self .out (' (echoconsole %s)' , join (list , ' ' ))
5396
+ endfunction
5397
+
5379
5398
function ! s: Compiler .compile_execute (node) abort
5380
5399
let list = map (a: node .list , ' self.compile(v:val)' )
5381
5400
call self .out (' (execute %s)' , join (list , ' ' ))
0 commit comments