Problem: Vim9: cannot split dict inside command block
(lacygoill)
Solution: Remove the current restriction (Yegappan Lakshmanan).
fixes: #17841
closes: #17845
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
had_comma = **arg == ',';
if (had_comma)
{
- if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
+ if (vim9script && !IS_WHITE_NL_OR_NUL((*arg)[1]))
{
semsg(_(e_white_space_required_after_str_str), ",", *arg);
goto failret;
}
- *arg = skipwhite(*arg + 1);
+ *arg = skipwhite_and_nl(*arg + 1);
}
// the "}" can be on the next line
v9.CheckSourceSuccess(lines)
enddef
+" Test for defining a dict with multiple keys in a command-block
+def Test_multikey_dict_in_block()
+ var lines =<< trim END
+ vim9script
+ command NewCommand {
+ g:TestDict = {
+ 'key': 'v1',
+ 'other_key': 'v2' }
+ }
+ NewCommand
+ END
+ v9.CheckSourceSuccess(lines)
+ assert_equal({key: 'v1', other_key: 'v2'}, g:TestDict)
+ unlet g:TestDict
+enddef
+
" Keep this last, it messes up highlighting.
def Test_substitute_cmd()
new
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1588,
/**/
1587,
/**/