2023-06-12 09:54:30 -06:00
|
|
|
local Runner = require('tests.indent.common').Runner
|
2022-01-21 17:11:46 +06:00
|
|
|
-- local XFAIL = require("tests.indent.common").XFAIL
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
local run = Runner:new(it, 'tests/indent', {
|
2022-01-21 17:11:46 +06:00
|
|
|
tabstop = 2,
|
|
|
|
|
shiftwidth = 2,
|
|
|
|
|
softtabstop = 0,
|
|
|
|
|
expandtab = true,
|
|
|
|
|
})
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
describe('indent JavaScript:', function()
|
|
|
|
|
describe('whole file:', function()
|
|
|
|
|
run:whole_file({ 'ecma/' }, {
|
2022-01-21 17:11:46 +06:00
|
|
|
expected_failures = {},
|
|
|
|
|
})
|
|
|
|
|
end)
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
describe('new line:', function()
|
|
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 1, 2 },
|
|
|
|
|
{ 2, 4 },
|
|
|
|
|
{ 3, 4 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/binary_expression.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
run:new_line('ecma/new-line-after-class.js', { on_line = 2, text = '', indent = 0 })
|
2022-07-07 14:35:12 +02:00
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 4, 2 },
|
|
|
|
|
{ 6, 0 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/callback.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 1, 2 },
|
|
|
|
|
{ 2, 4 },
|
|
|
|
|
{ 3, 6 },
|
|
|
|
|
{ 5, 4 },
|
|
|
|
|
{ 8, 2 },
|
|
|
|
|
{ 11, 4 },
|
|
|
|
|
{ 13, 4 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/class.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-02-26 19:59:48 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 2, 2 },
|
|
|
|
|
{ 5, 2 },
|
|
|
|
|
{ 7, 0 },
|
|
|
|
|
{ 12, 4 },
|
|
|
|
|
{ 18, 2 },
|
|
|
|
|
{ 19, 2 },
|
|
|
|
|
{ 20, 2 },
|
|
|
|
|
{ 25, 2 },
|
|
|
|
|
{ 42, 8 },
|
|
|
|
|
{ 43, 10 },
|
|
|
|
|
{ 44, 12 },
|
|
|
|
|
{ 48, 4 },
|
|
|
|
|
{ 49, 4 },
|
|
|
|
|
{ 50, 2 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/func.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 17:11:46 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 1, 2 },
|
|
|
|
|
{ 2, 2 },
|
|
|
|
|
{ 3, 2 },
|
|
|
|
|
{ 5, 4 },
|
|
|
|
|
{ 6, 4 },
|
|
|
|
|
{ 8, 2 },
|
|
|
|
|
{ 9, 2 },
|
|
|
|
|
{ 12, 2 },
|
|
|
|
|
{ 13, 0 },
|
2024-07-03 19:13:16 -07:00
|
|
|
{ 16, 0 },
|
|
|
|
|
{ 19, 2 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/if_else.js',
|
|
|
|
|
{ on_line = info[1], text = 'hello()', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 2, 2 },
|
|
|
|
|
{ 5, 0 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/object.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 3, 6 },
|
|
|
|
|
{ 4, 6 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/ternary.js',
|
|
|
|
|
{ on_line = info[1], text = '//', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 1, 2 },
|
|
|
|
|
{ 2, 2 },
|
|
|
|
|
{ 3, 2 },
|
|
|
|
|
{ 4, 2 },
|
|
|
|
|
{ 5, 2 },
|
|
|
|
|
{ 6, 2 },
|
|
|
|
|
{ 7, 0 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/try_catch.js',
|
|
|
|
|
{ on_line = info[1], text = 'hello()', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 18:44:30 +06:00
|
|
|
end
|
|
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({
|
2022-04-01 00:51:12 +02:00
|
|
|
{ 1, 2 },
|
|
|
|
|
{ 2, 0 },
|
2023-06-12 09:54:30 -06:00
|
|
|
}) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/variable.js',
|
|
|
|
|
{ on_line = info[1], text = 'hello()', indent = info[2] },
|
|
|
|
|
info[3],
|
|
|
|
|
info[4]
|
|
|
|
|
)
|
2022-01-21 17:11:46 +06:00
|
|
|
end
|
2022-02-11 23:46:51 +01:00
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, line in ipairs({ 2, 6 }) do
|
|
|
|
|
run:new_line('ecma/issue-2515.js', { on_line = line, text = '{}', indent = 4 })
|
2022-02-11 23:46:51 +01:00
|
|
|
end
|
2022-08-27 10:53:28 +02:00
|
|
|
|
2023-06-12 09:54:30 -06:00
|
|
|
for _, info in ipairs({ { line = 2, indent = 0 } }) do
|
|
|
|
|
run:new_line(
|
|
|
|
|
'ecma/array-issue3382.js',
|
|
|
|
|
{ on_line = info.line, text = 'foo();', indent = info.indent }
|
|
|
|
|
)
|
2022-08-27 10:53:28 +02:00
|
|
|
end
|
2022-01-21 17:11:46 +06:00
|
|
|
end)
|
|
|
|
|
end)
|