aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/vim_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r--test/functional/api/vim_spec.lua1197
1 files changed, 777 insertions, 420 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index bb7785657d..b904bd2a8f 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -12,8 +12,10 @@ local request = helpers.request
local meth_pcall = helpers.meth_pcall
local command = helpers.command
+local REMOVE_THIS = global_helpers.REMOVE_THIS
local intchar2lua = global_helpers.intchar2lua
local format_string = global_helpers.format_string
+local mergedicts_copy = global_helpers.mergedicts_copy
describe('api', function()
before_each(clear)
@@ -717,6 +719,9 @@ describe('api', function()
describe('nvim_parse_expression', function()
local function simplify_east_api_node(line, east_api_node)
+ if east_api_node == NIL then
+ return nil
+ end
if east_api_node.children then
for k, v in pairs(east_api_node.children) do
east_api_node.children[k] = simplify_east_api_node(line, v)
@@ -806,31 +811,53 @@ describe('api', function()
end
return east_hl
end
- local function check_parsing(str, flags, exp_ast, exp_highlighting_fs)
- if flags == 0 then
- flags = ""
- end
-
- local err, msg = pcall(function()
- local east_api = meths.parse_expression(str, flags, true)
- local east_hl = east_api.highlight
- east_api.highlight = nil
- local ast = simplify_east_api(str, east_api)
- local hls = simplify_east_hl(str, east_hl)
- eq(exp_ast, ast)
- if exp_highlighting_fs then
- local exp_highlighting = {}
- local next_col = 0
- for i, h in ipairs(exp_highlighting_fs) do
- exp_highlighting[i], next_col = h(next_col)
+ local FLAGS_TO_STR = {
+ [0] = "",
+ [1] = "m",
+ [2] = "E",
+ [3] = "mE",
+ }
+ local function check_parsing(str, exp_ast, exp_highlighting_fs,
+ nz_flags_exps)
+ nz_flags_exps = nz_flags_exps or {}
+ for _, flags in ipairs({0, 1, 2, 3}) do
+ local err, msg = pcall(function()
+ local east_api = meths.parse_expression(str, FLAGS_TO_STR[flags], true)
+ local east_hl = east_api.highlight
+ east_api.highlight = nil
+ local ast = simplify_east_api(str, east_api)
+ local hls = simplify_east_hl(str, east_hl)
+ local exps = {
+ ast = exp_ast,
+ hl_fs = exp_highlighting_fs,
+ }
+ local add_exps = nz_flags_exps[flags]
+ if not add_exps and flags == 3 then
+ add_exps = nz_flags_exps[1] or nz_flags_exps[2]
end
- eq(exp_highlighting, hls)
+ if add_exps then
+ if add_exps.ast then
+ exps.ast = mergedicts_copy(exps.ast, add_exps.ast)
+ end
+ if add_exps.hl_fs then
+ exps.hl_fs = mergedicts_copy(exps.hl_fs, add_exps.hl_fs)
+ end
+ end
+ eq(exps.ast, ast)
+ if exp_highlighting_fs then
+ local exp_highlighting = {}
+ local next_col = 0
+ for i, h in ipairs(exps.hl_fs) do
+ exp_highlighting[i], next_col = h(next_col)
+ end
+ eq(exp_highlighting, hls)
+ end
+ end)
+ if not err then
+ msg = format_string('Error while processing test (%r, %s):\n%s',
+ str, FLAGS_TO_STR[flags], msg)
+ error(msg)
end
- end)
- if not err then
- msg = format_string('Error while processing test (%r, %s):\n%s',
- str, flags, msg)
- error(msg)
end
end
local function hl(group, str, shift)
@@ -844,14 +871,14 @@ describe('api', function()
end
end
it('works with + and @a', function()
- check_parsing('@a', 0, {
+ check_parsing('@a', {
ast = {
'Register(name=a):0:0:@a',
},
}, {
hl('Register', '@a'),
})
- check_parsing('+@a', 0, {
+ check_parsing('+@a', {
ast = {
{
'UnaryPlus:0:0:+',
@@ -864,7 +891,7 @@ describe('api', function()
hl('UnaryPlus', '+'),
hl('Register', '@a'),
})
- check_parsing('@a+@b', 0, {
+ check_parsing('@a+@b', {
ast = {
{
'BinaryPlus:0:2:+',
@@ -879,7 +906,7 @@ describe('api', function()
hl('BinaryPlus', '+'),
hl('Register', '@b'),
})
- check_parsing('@a+@b+@c', 0, {
+ check_parsing('@a+@b+@c', {
ast = {
{
'BinaryPlus:0:5:+',
@@ -902,7 +929,7 @@ describe('api', function()
hl('BinaryPlus', '+'),
hl('Register', '@c'),
})
- check_parsing('+@a+@b', 0, {
+ check_parsing('+@a+@b', {
ast = {
{
'BinaryPlus:0:3:+',
@@ -923,7 +950,7 @@ describe('api', function()
hl('BinaryPlus', '+'),
hl('Register', '@b'),
})
- check_parsing('+@a++@b', 0, {
+ check_parsing('+@a++@b', {
ast = {
{
'BinaryPlus:0:3:+',
@@ -950,7 +977,7 @@ describe('api', function()
hl('UnaryPlus', '+'),
hl('Register', '@b'),
})
- check_parsing('@a@b', 0, {
+ check_parsing('@a@b', {
ast = {
{
'OpMissing:0:2:',
@@ -967,8 +994,20 @@ describe('api', function()
}, {
hl('Register', '@a'),
hl('InvalidRegister', '@b'),
+ }, {
+ [1] = {
+ ast = {
+ err = REMOVE_THIS,
+ ast = {
+ 'Register(name=a):0:0:@a'
+ },
+ },
+ hl_fs = {
+ [2] = REMOVE_THIS,
+ },
+ },
})
- check_parsing(' @a \t @b', 0, {
+ check_parsing(' @a \t @b', {
ast = {
{
'OpMissing:0:3:',
@@ -986,8 +1025,21 @@ describe('api', function()
hl('Register', '@a', 1),
hl('InvalidSpacing', ' \t '),
hl('Register', '@b'),
+ }, {
+ [1] = {
+ ast = {
+ err = REMOVE_THIS,
+ ast = {
+ 'Register(name=a):0:0: @a'
+ },
+ },
+ hl_fs = {
+ [2] = REMOVE_THIS,
+ [3] = REMOVE_THIS,
+ },
+ },
})
- check_parsing('+', 0, {
+ check_parsing('+', {
ast = {
'UnaryPlus:0:0:+',
},
@@ -998,7 +1050,7 @@ describe('api', function()
}, {
hl('UnaryPlus', '+'),
})
- check_parsing(' +', 0, {
+ check_parsing(' +', {
ast = {
'UnaryPlus:0:0: +',
},
@@ -1009,7 +1061,7 @@ describe('api', function()
}, {
hl('UnaryPlus', '+', 1),
})
- check_parsing('@a+ ', 0, {
+ check_parsing('@a+ ', {
ast = {
{
'BinaryPlus:0:2:+',
@@ -1028,7 +1080,7 @@ describe('api', function()
})
end)
it('works with @a, + and parenthesis', function()
- check_parsing('(@a)', 0, {
+ check_parsing('(@a)', {
ast = {
{
'Nested:0:0:(',
@@ -1042,7 +1094,7 @@ describe('api', function()
hl('Register', '@a'),
hl('NestingParenthesis', ')'),
})
- check_parsing('()', 0, {
+ check_parsing('()', {
ast = {
{
'Nested:0:0:(',
@@ -1059,7 +1111,7 @@ describe('api', function()
hl('NestingParenthesis', '('),
hl('InvalidNestingParenthesis', ')'),
})
- check_parsing(')', 0, {
+ check_parsing(')', {
ast = {
{
'Nested:0:0:',
@@ -1075,7 +1127,7 @@ describe('api', function()
}, {
hl('InvalidNestingParenthesis', ')'),
})
- check_parsing('+)', 0, {
+ check_parsing('+)', {
ast = {
{
'Nested:0:1:',
@@ -1097,7 +1149,7 @@ describe('api', function()
hl('UnaryPlus', '+'),
hl('InvalidNestingParenthesis', ')'),
})
- check_parsing('+@a(@b)', 0, {
+ check_parsing('+@a(@b)', {
ast = {
{
'UnaryPlus:0:0:+',
@@ -1119,7 +1171,7 @@ describe('api', function()
hl('Register', '@b'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a+@b(@c)', 0, {
+ check_parsing('@a+@b(@c)', {
ast = {
{
'BinaryPlus:0:2:+',
@@ -1143,7 +1195,7 @@ describe('api', function()
hl('Register', '@c'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a()', 0, {
+ check_parsing('@a()', {
ast = {
{
'Call:0:2:(',
@@ -1157,7 +1209,7 @@ describe('api', function()
hl('CallingParenthesis', '('),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a ()', 0, {
+ check_parsing('@a ()', {
ast = {
{
'OpMissing:0:2:',
@@ -1181,91 +1233,102 @@ describe('api', function()
hl('InvalidSpacing', ' '),
hl('NestingParenthesis', '('),
hl('InvalidNestingParenthesis', ')'),
- })
- check_parsing(
- '@a + (@b)', 0, {
+ }, {
+ [1] = {
ast = {
- {
- 'BinaryPlus:0:2: +',
- children = {
- 'Register(name=a):0:0:@a',
- {
- 'Nested:0:4: (',
- children = {
- 'Register(name=b):0:6:@b',
- },
+ err = REMOVE_THIS,
+ ast = {
+ 'Register(name=a):0:0:@a',
+ },
+ },
+ hl_fs = {
+ [2] = REMOVE_THIS,
+ [3] = REMOVE_THIS,
+ [4] = REMOVE_THIS,
+ },
+ },
+ })
+ check_parsing('@a + (@b)', {
+ ast = {
+ {
+ 'BinaryPlus:0:2: +',
+ children = {
+ 'Register(name=a):0:0:@a',
+ {
+ 'Nested:0:4: (',
+ children = {
+ 'Register(name=b):0:6:@b',
},
},
},
},
- }, {
- hl('Register', '@a'),
- hl('BinaryPlus', '+', 1),
- hl('NestingParenthesis', '(', 1),
- hl('Register', '@b'),
- hl('NestingParenthesis', ')'),
- })
- check_parsing(
- '@a + (+@b)', 0, {
- ast = {
- {
- 'BinaryPlus:0:2: +',
- children = {
- 'Register(name=a):0:0:@a',
- {
- 'Nested:0:4: (',
- children = {
- {
- 'UnaryPlus:0:6:+',
- children = {
- 'Register(name=b):0:7:@b',
- },
+ },
+ }, {
+ hl('Register', '@a'),
+ hl('BinaryPlus', '+', 1),
+ hl('NestingParenthesis', '(', 1),
+ hl('Register', '@b'),
+ hl('NestingParenthesis', ')'),
+ })
+ check_parsing('@a + (+@b)', {
+ ast = {
+ {
+ 'BinaryPlus:0:2: +',
+ children = {
+ 'Register(name=a):0:0:@a',
+ {
+ 'Nested:0:4: (',
+ children = {
+ {
+ 'UnaryPlus:0:6:+',
+ children = {
+ 'Register(name=b):0:7:@b',
},
},
},
},
},
},
- }, {
- hl('Register', '@a'),
- hl('BinaryPlus', '+', 1),
- hl('NestingParenthesis', '(', 1),
- hl('UnaryPlus', '+'),
- hl('Register', '@b'),
- hl('NestingParenthesis', ')'),
- })
- check_parsing(
- '@a + (@b + @c)', 0, {
- ast = {
- {
- 'BinaryPlus:0:2: +',
- children = {
- 'Register(name=a):0:0:@a',
- {
- 'Nested:0:4: (',
- children = {
- {
- 'BinaryPlus:0:8: +',
- children = {
- 'Register(name=b):0:6:@b',
- 'Register(name=c):0:10: @c',
- },
+ },
+ }, {
+ hl('Register', '@a'),
+ hl('BinaryPlus', '+', 1),
+ hl('NestingParenthesis', '(', 1),
+ hl('UnaryPlus', '+'),
+ hl('Register', '@b'),
+ hl('NestingParenthesis', ')'),
+ })
+ check_parsing('@a + (@b + @c)', {
+ ast = {
+ {
+ 'BinaryPlus:0:2: +',
+ children = {
+ 'Register(name=a):0:0:@a',
+ {
+ 'Nested:0:4: (',
+ children = {
+ {
+ 'BinaryPlus:0:8: +',
+ children = {
+ 'Register(name=b):0:6:@b',
+ 'Register(name=c):0:10: @c',
},
},
},
},
},
},
- }, {
- hl('Register', '@a'),
- hl('BinaryPlus', '+', 1),
- hl('NestingParenthesis', '(', 1),
- hl('Register', '@b'),
- hl('BinaryPlus', '+', 1),
- hl('Register', '@c', 1),
- hl('NestingParenthesis', ')'),
- })
- check_parsing('(@a)+@b', 0, {
+ },
+ }, {
+ hl('Register', '@a'),
+ hl('BinaryPlus', '+', 1),
+ hl('NestingParenthesis', '(', 1),
+ hl('Register', '@b'),
+ hl('BinaryPlus', '+', 1),
+ hl('Register', '@c', 1),
+ hl('NestingParenthesis', ')'),
+ })
+ check_parsing('(@a)+@b', {
ast = {
{
'BinaryPlus:0:4:+',
@@ -1287,7 +1350,7 @@ describe('api', function()
hl('BinaryPlus', '+'),
hl('Register', '@b'),
})
- check_parsing('@a+(@b)(@c)', 0, {
+ check_parsing('@a+(@b)(@c)', {
-- 01234567890
ast = {
{
@@ -1317,7 +1380,7 @@ describe('api', function()
hl('Register', '@c'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a+((@b))(@c)', 0, {
+ check_parsing('@a+((@b))(@c)', {
-- 01234567890123456890123456789
-- 0 1 2
ast = {
@@ -1355,7 +1418,7 @@ describe('api', function()
hl('Register', '@c'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a+((@b))+@c', 0, {
+ check_parsing('@a+((@b))+@c', {
-- 01234567890123456890123456789
-- 0 1 2
ast = {
@@ -1393,7 +1456,7 @@ describe('api', function()
hl('Register', '@c'),
})
check_parsing(
- '@a + (@b + @c) + @d(@e) + (+@f) + ((+@g(@h))(@j)(@k))(@l)', 0, {--[[
+ '@a + (@b + @c) + @d(@e) + (+@f) + ((+@g(@h))(@j)(@k))(@l)', {--[[
| | | | | | | | || | | || | | ||| || || || ||
000000000011111111112222222222333333333344444444445555555
012345678901234567890123456789012345678901234567890123456
@@ -1527,7 +1590,7 @@ describe('api', function()
hl('Register', '@l'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a)', 0, {
+ check_parsing('@a)', {
-- 012
ast = {
{
@@ -1545,7 +1608,7 @@ describe('api', function()
hl('Register', '@a'),
hl('InvalidNestingParenthesis', ')'),
})
- check_parsing('(@a', 0, {
+ check_parsing('(@a', {
-- 012
ast = {
{
@@ -1563,7 +1626,7 @@ describe('api', function()
hl('NestingParenthesis', '('),
hl('Register', '@a'),
})
- check_parsing('@a(@b', 0, {
+ check_parsing('@a(@b', {
-- 01234
ast = {
{
@@ -1583,7 +1646,7 @@ describe('api', function()
hl('CallingParenthesis', '('),
hl('Register', '@b'),
})
- check_parsing('@a(@b, @c, @d, @e)', 0, {
+ check_parsing('@a(@b, @c, @d, @e)', {
-- 012345678901234567
-- 0 1
ast = {
@@ -1625,7 +1688,7 @@ describe('api', function()
hl('Register', '@e', 1),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a(@b(@c))', 0, {
+ check_parsing('@a(@b(@c))', {
-- 01234567890123456789012345678901234567
-- 0 1 2 3
ast = {
@@ -1652,7 +1715,7 @@ describe('api', function()
hl('CallingParenthesis', ')'),
hl('CallingParenthesis', ')'),
})
- check_parsing('@a(@b(@c(@d(@e), @f(@g(@h), @i(@j)))))', 0, {
+ check_parsing('@a(@b(@c(@d(@e), @f(@g(@h), @i(@j)))))', {
-- 01234567890123456789012345678901234567
-- 0 1 2 3
ast = {
@@ -1742,14 +1805,14 @@ describe('api', function()
})
end)
it('works with variable names, including curly braces ones', function()
- check_parsing('var', 0, {
+ check_parsing('var', {
ast = {
'PlainIdentifier(scope=0,ident=var):0:0:var',
},
}, {
hl('IdentifierName', 'var'),
})
- check_parsing('g:var', 0, {
+ check_parsing('g:var', {
ast = {
'PlainIdentifier(scope=g,ident=var):0:0:g:var',
},
@@ -1758,7 +1821,7 @@ describe('api', function()
hl('IdentifierScopeDelimiter', ':'),
hl('IdentifierName', 'var'),
})
- check_parsing('g:', 0, {
+ check_parsing('g:', {
ast = {
'PlainIdentifier(scope=g,ident=):0:0:g:',
},
@@ -1766,7 +1829,7 @@ describe('api', function()
hl('IdentifierScope', 'g'),
hl('IdentifierScopeDelimiter', ':'),
})
- check_parsing('{a}', 0, {
+ check_parsing('{a}', {
-- 012
ast = {
{
@@ -1781,7 +1844,7 @@ describe('api', function()
hl('IdentifierName', 'a'),
hl('Curly', '}'),
})
- check_parsing('{a:b}', 0, {
+ check_parsing('{a:b}', {
-- 012
ast = {
{
@@ -1798,7 +1861,7 @@ describe('api', function()
hl('IdentifierName', 'b'),
hl('Curly', '}'),
})
- check_parsing('{a:@b}', 0, {
+ check_parsing('{a:@b}', {
-- 012345
ast = {
{
@@ -1825,7 +1888,7 @@ describe('api', function()
hl('InvalidRegister', '@b'),
hl('Curly', '}'),
})
- check_parsing('{@a}', 0, {
+ check_parsing('{@a}', {
ast = {
{
'CurlyBracesIdentifier:0:0:{',
@@ -1839,7 +1902,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Curly', '}'),
})
- check_parsing('{@a}{@b}', 0, {
+ check_parsing('{@a}{@b}', {
-- 01234567
ast = {
{
@@ -1868,7 +1931,7 @@ describe('api', function()
hl('Register', '@b'),
hl('Curly', '}'),
})
- check_parsing('g:{@a}', 0, {
+ check_parsing('g:{@a}', {
-- 01234567
ast = {
{
@@ -1891,7 +1954,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Curly', '}'),
})
- check_parsing('{@a}_test', 0, {
+ check_parsing('{@a}_test', {
-- 012345678
ast = {
{
@@ -1913,7 +1976,7 @@ describe('api', function()
hl('Curly', '}'),
hl('IdentifierName', '_test'),
})
- check_parsing('g:{@a}_test', 0, {
+ check_parsing('g:{@a}_test', {
-- 01234567890
ast = {
{
@@ -1943,7 +2006,7 @@ describe('api', function()
hl('Curly', '}'),
hl('IdentifierName', '_test'),
})
- check_parsing('g:{@a}_test()', 0, {
+ check_parsing('g:{@a}_test()', {
-- 0123456789012
ast = {
{
@@ -1980,7 +2043,7 @@ describe('api', function()
hl('CallingParenthesis', '('),
hl('CallingParenthesis', ')'),
})
- check_parsing('{@a} ()', 0, {
+ check_parsing('{@a} ()', {
-- 0123456789012
ast = {
{
@@ -2002,7 +2065,7 @@ describe('api', function()
hl('CallingParenthesis', '(', 1),
hl('CallingParenthesis', ')'),
})
- check_parsing('g:{@a} ()', 0, {
+ check_parsing('g:{@a} ()', {
-- 0123456789012
ast = {
{
@@ -2032,7 +2095,7 @@ describe('api', function()
hl('CallingParenthesis', '(', 1),
hl('CallingParenthesis', ')'),
})
- check_parsing('{@a', 0, {
+ check_parsing('{@a', {
-- 012
ast = {
{
@@ -2052,7 +2115,7 @@ describe('api', function()
})
end)
it('works with lambdas and dictionaries', function()
- check_parsing('{}', 0, {
+ check_parsing('{}', {
ast = {
'DictLiteral:0:0:{',
},
@@ -2060,7 +2123,7 @@ describe('api', function()
hl('Dict', '{'),
hl('Dict', '}'),
})
- check_parsing('{->@a}', 0, {
+ check_parsing('{->@a}', {
ast = {
{
'Lambda:0:0:{',
@@ -2080,7 +2143,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{->@a+@b}', 0, {
+ check_parsing('{->@a+@b}', {
-- 012345678
ast = {
{
@@ -2109,7 +2172,7 @@ describe('api', function()
hl('Register', '@b'),
hl('Lambda', '}'),
})
- check_parsing('{a->@a}', 0, {
+ check_parsing('{a->@a}', {
-- 012345678
ast = {
{
@@ -2132,7 +2195,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{a,b->@a}', 0, {
+ check_parsing('{a,b->@a}', {
-- 012345678
ast = {
{
@@ -2163,7 +2226,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{a,b,c->@a}', 0, {
+ check_parsing('{a,b,c->@a}', {
-- 01234567890
ast = {
{
@@ -2202,7 +2265,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{a,b,c,d->@a}', 0, {
+ check_parsing('{a,b,c,d->@a}', {
-- 0123456789012
ast = {
{
@@ -2249,7 +2312,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{a,b,c,d,->@a}', 0, {
+ check_parsing('{a,b,c,d,->@a}', {
-- 01234567890123
ast = {
{
@@ -2302,7 +2365,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Lambda', '}'),
})
- check_parsing('{a,b->{c,d->{e,f->@a}}}', 0, {
+ check_parsing('{a,b->{c,d->{e,f->@a}}}', {
-- 01234567890123456789012
-- 0 1 2
ast = {
@@ -2380,7 +2443,7 @@ describe('api', function()
hl('Lambda', '}'),
hl('Lambda', '}'),
})
- check_parsing('{a,b->c,d}', 0, {
+ check_parsing('{a,b->c,d}', {
-- 0123456789
ast = {
{
@@ -2423,7 +2486,7 @@ describe('api', function()
hl('IdentifierName', 'd'),
hl('Lambda', '}'),
})
- check_parsing('a,b,c,d', 0, {
+ check_parsing('a,b,c,d', {
-- 0123456789
ast = {
{
@@ -2459,7 +2522,7 @@ describe('api', function()
hl('InvalidComma', ','),
hl('IdentifierName', 'd'),
})
- check_parsing('a,b,c,d,', 0, {
+ check_parsing('a,b,c,d,', {
-- 0123456789
ast = {
{
@@ -2501,7 +2564,7 @@ describe('api', function()
hl('IdentifierName', 'd'),
hl('InvalidComma', ','),
})
- check_parsing(',', 0, {
+ check_parsing(',', {
-- 0123456789
ast = {
{
@@ -2518,7 +2581,7 @@ describe('api', function()
}, {
hl('InvalidComma', ','),
})
- check_parsing('{,a->@a}', 0, {
+ check_parsing('{,a->@a}', {
-- 0123456789
ast = {
{
@@ -2552,7 +2615,7 @@ describe('api', function()
hl('Register', '@a'),
hl('Curly', '}'),
})
- check_parsing('}', 0, {
+ check_parsing('}', {
-- 0123456789
ast = {
'UnknownFigure:0:0:',
@@ -2564,7 +2627,7 @@ describe('api', function()
}, {
hl('InvalidFigureBrace', '}'),
})
- check_parsing('{->}', 0, {
+ check_parsing('{->}', {
-- 0123456789
ast = {
{
@@ -2583,7 +2646,7 @@ describe('api', function()
hl('Arrow', '->'),
hl('InvalidLambda', '}'),
})
- check_parsing('{a,b}', 0, {
+ check_parsing('{a,b}', {
-- 0123456789
ast = {
{
@@ -2610,7 +2673,7 @@ describe('api', function()
hl('IdentifierName', 'b'),
hl('InvalidLambda', '}'),
})
- check_parsing('{a,}', 0, {
+ check_parsing('{a,}', {
-- 0123456789
ast = {
{
@@ -2635,7 +2698,7 @@ describe('api', function()
hl('Comma', ','),
hl('InvalidLambda', '}'),
})
- check_parsing('{@a:@b}', 0, {
+ check_parsing('{@a:@b}', {
-- 0123456789
ast = {
{
@@ -2658,7 +2721,7 @@ describe('api', function()
hl('Register', '@b'),
hl('Dict', '}'),
})
- check_parsing('{@a:@b,@c:@d}', 0, {
+ check_parsing('{@a:@b,@c:@d}', {
-- 0123456789012
-- 0 1
ast = {
@@ -2698,7 +2761,7 @@ describe('api', function()
hl('Register', '@d'),
hl('Dict', '}'),
})
- check_parsing('{@a:@b,@c:@d,@e:@f,}', 0, {
+ check_parsing('{@a:@b,@c:@d,@e:@f,}', {
-- 01234567890123456789
-- 0 1
ast = {
@@ -2760,7 +2823,7 @@ describe('api', function()
hl('Comma', ','),
hl('Dict', '}'),
})
- check_parsing('{@a:@b,@c:@d,@e:@f,@g:}', 0, {
+ check_parsing('{@a:@b,@c:@d,@e:@f,@g:}', {
-- 01234567890123456789012
-- 0 1 2
ast = {
@@ -2834,7 +2897,7 @@ describe('api', function()
hl('Colon', ':'),
hl('InvalidDict', '}'),
})
- check_parsing('{@a:@b,}', 0, {
+ check_parsing('{@a:@b,}', {
-- 01234567890123
-- 0 1
ast = {
@@ -2864,7 +2927,7 @@ describe('api', function()
hl('Comma', ','),
hl('Dict', '}'),
})
- check_parsing('{({f -> g})(@h)(@i)}', 0, {
+ check_parsing('{({f -> g})(@h)(@i)}', {
-- 01234567890123456789
-- 0 1
ast = {
@@ -2920,7 +2983,7 @@ describe('api', function()
hl('CallingParenthesis', ')'),
hl('Curly', '}'),
})
- check_parsing('a:{b()}c', 0, {
+ check_parsing('a:{b()}c', {
-- 01234567
ast = {
{
@@ -2957,7 +3020,7 @@ describe('api', function()
hl('Curly', '}'),
hl('IdentifierName', 'c'),
})
- check_parsing('a:{{b, c -> @d + @e + ({f -> g})(@h)}(@i)}j', 0, {
+ check_parsing('a:{{b, c -> @d + @e + ({f -> g})(@h)}(@i)}j', {
-- 01234567890123456789012345678901234567890123456
-- 0 1 2 3 4
ast = {
@@ -3067,7 +3130,7 @@ describe('api', function()
hl('Curly', '}'),
hl('IdentifierName', 'j'),
})
- check_parsing('{@a + @b : @c + @d, @e + @f : @g + @i}', 0, {
+ check_parsing('{@a + @b : @c + @d, @e + @f : @g + @i}', {
-- 01234567890123456789012345678901234567
-- 0 1 2 3
ast = {
@@ -3139,7 +3202,7 @@ describe('api', function()
hl('Register', '@i', 1),
hl('Dict', '}'),
})
- check_parsing('-> -> ->', 0, {
+ check_parsing('-> -> ->', {
-- 01234567
ast = {
{
@@ -3170,7 +3233,7 @@ describe('api', function()
hl('InvalidArrow', '->', 1),
hl('InvalidArrow', '->', 1),
})
- check_parsing('a -> b -> c -> d', 0, {
+ check_parsing('a -> b -> c -> d', {
-- 0123456789012345
-- 0 1
ast = {
@@ -3207,7 +3270,7 @@ describe('api', function()
hl('InvalidArrow', '->', 1),
hl('IdentifierName', 'd', 1),
})
- check_parsing('{a -> b -> c}', 0, {
+ check_parsing('{a -> b -> c}', {
-- 0123456789012
-- 0 1
ast = {
@@ -3243,7 +3306,7 @@ describe('api', function()
hl('IdentifierName', 'c', 1),
hl('Lambda', '}'),
})
- check_parsing('{a: -> b}', 0, {
+ check_parsing('{a: -> b}', {
-- 012345678
ast = {
{
@@ -3272,7 +3335,7 @@ describe('api', function()
hl('Curly', '}'),
})
- check_parsing('{a:b -> b}', 0, {
+ check_parsing('{a:b -> b}', {
-- 0123456789
ast = {
{
@@ -3302,7 +3365,7 @@ describe('api', function()
hl('Curly', '}'),
})
- check_parsing('{a#b -> b}', 0, {
+ check_parsing('{a#b -> b}', {
-- 0123456789
ast = {
{
@@ -3329,7 +3392,7 @@ describe('api', function()
hl('IdentifierName', 'b', 1),
hl('Curly', '}'),
})
- check_parsing('{a : b : c}', 0, {
+ check_parsing('{a : b : c}', {
-- 01234567890
-- 0 1
ast = {
@@ -3365,7 +3428,7 @@ describe('api', function()
hl('IdentifierName', 'c', 1),
hl('Dict', '}'),
})
- check_parsing('{', 0, {
+ check_parsing('{', {
-- 0
ast = {
'UnknownFigure:0:0:{',
@@ -3377,7 +3440,7 @@ describe('api', function()
}, {
hl('FigureBrace', '{'),
})
- check_parsing('{a', 0, {
+ check_parsing('{a', {
-- 01
ast = {
{
@@ -3395,7 +3458,7 @@ describe('api', function()
hl('FigureBrace', '{'),
hl('IdentifierName', 'a'),
})
- check_parsing('{a,b', 0, {
+ check_parsing('{a,b', {
-- 0123
ast = {
{
@@ -3421,7 +3484,7 @@ describe('api', function()
hl('Comma', ','),
hl('IdentifierName', 'b'),
})
- check_parsing('{a,b->', 0, {
+ check_parsing('{a,b->', {
-- 012345
ast = {
{
@@ -3449,7 +3512,7 @@ describe('api', function()
hl('IdentifierName', 'b'),
hl('Arrow', '->'),
})
- check_parsing('{a,b->c', 0, {
+ check_parsing('{a,b->c', {
-- 0123456
ast = {
{
@@ -3483,7 +3546,7 @@ describe('api', function()
hl('Arrow', '->'),
hl('IdentifierName', 'c'),
})
- check_parsing('{a : b', 0, {
+ check_parsing('{a : b', {
-- 012345
ast = {
{
@@ -3509,7 +3572,7 @@ describe('api', function()
hl('Colon', ':', 1),
hl('IdentifierName', 'b', 1),
})
- check_parsing('{a : b,', 0, {
+ check_parsing('{a : b,', {
-- 0123456
ast = {
{
@@ -3543,7 +3606,7 @@ describe('api', function()
})
end)
it('works with ternary operator', function()
- check_parsing('a ? b : c', 0, {
+ check_parsing('a ? b : c', {
-- 012345678
ast = {
{
@@ -3567,7 +3630,7 @@ describe('api', function()
hl('TernaryColon', ':', 1),
hl('IdentifierName', 'c', 1),
})
- check_parsing('@a?@b?@c:@d:@e', 0, {
+ check_parsing('@a?@b?@c:@d:@e', {
-- 01234567890123
-- 0 1
ast = {
@@ -3608,7 +3671,7 @@ describe('api', function()
hl('TernaryColon', ':'),
hl('Register', '@e'),
})
- check_parsing('@a?@b:@c?@d:@e', 0, {
+ check_parsing('@a?@b:@c?@d:@e', {
-- 01234567890123
-- 0 1
ast = {
@@ -3649,7 +3712,7 @@ describe('api', function()
hl('TernaryColon', ':'),
hl('Register', '@e'),
})
- check_parsing('@a?@b?@c?@d:@e?@f:@g:@h?@i:@j:@k', 0, {
+ check_parsing('@a?@b?@c?@d:@e?@f:@g:@h?@i:@j:@k', {
-- 01234567890123456789012345678901
-- 0 1 2 3
ast = {
@@ -3738,7 +3801,7 @@ describe('api', function()
hl('TernaryColon', ':'),
hl('Register', '@k'),
})
- check_parsing('?', 0, {
+ check_parsing('?', {
-- 0
ast = {
{
@@ -3757,7 +3820,7 @@ describe('api', function()
hl('InvalidTernary', '?'),
})
- check_parsing('?:', 0, {
+ check_parsing('?:', {
-- 01
ast = {
{
@@ -3782,7 +3845,7 @@ describe('api', function()
hl('InvalidTernaryColon', ':'),
})
- check_parsing('?::', 0, {
+ check_parsing('?::', {
-- 012
ast = {
{
<