fix(indents): indents for error block (css, lua) (#3207)

This commit is contained in:
Kiyan
2022-07-21 13:48:03 +02:00
committed by GitHub
parent 223a58bfca
commit d7f06bfb13
6 changed files with 24 additions and 12 deletions

View File

@@ -149,12 +149,19 @@ function M.get_indent(lnum)
end
-- do not indent for nodes that starts-and-ends on same line and starts on target line (lnum)
local should_process = not is_processed_by_row[srow]
local is_in_err = false
if should_process then
local parent = node:parent()
is_in_err = parent and parent:has_error()
end
if
not is_processed_by_row[srow]
-- Dear stylua, please don't change the semantics of this statement!
-- stylua: ignore start
and (q.indent[node:id()] and srow ~= erow and ((srow ~= lnum - 1) or q.indent[node:id()].start_at_same_line))
-- stylua: ignore end
should_process
and (
q.indent[node:id()]
and (srow ~= erow or is_in_err)
and (srow ~= lnum - 1 or q.indent[node:id()].start_at_same_line)
)
then
indent = indent + indent_size
is_processed = true

View File

@@ -3,9 +3,11 @@
(function_declaration)
(field)
(do_statement)
(method_index_expression)
(while_statement)
(repeat_statement)
(if_statement)
"then"
(for_statement)
(return_statement)
(table_constructor)

View File

@@ -1,5 +1,4 @@
local Runner = require("tests.indent.common").Runner
local XFAIL = require("tests.indent.common").XFAIL
local run = Runner:new(it, "tests/indent/css", {
tabstop = 2,
@@ -17,12 +16,7 @@ describe("indent CSS:", function()
describe("new line:", function()
run:new_line("open_block.css", { on_line = 1, text = "}", indent = 0 })
run:new_line(
"open_block.css",
{ on_line = 1, text = "color: green;", indent = 2 },
"might fail because tree is in a broken state",
XFAIL
)
run:new_line("open_block.css", { on_line = 1, text = "color: green;", indent = 2 })
run:new_line("next_rule.css", { on_line = 3, text = ".next {", indent = 0 })
end)
end)

View File

@@ -10,3 +10,5 @@ else
end
x = 0
end
if x > 2 then

View File

@@ -0,0 +1,3 @@
Node.new()
:call()
:build()

View File

@@ -36,8 +36,12 @@ describe("indent Lua:", function()
run:new_line("cond.lua", { on_line = 8, text = "x = x + 1", indent = 4 })
run:new_line("cond.lua", { on_line = 10, text = "x = x + 1", indent = 2 })
run:new_line("cond.lua", { on_line = 12, text = "x = x + 1", indent = 0 })
run:new_line("cond.lua", { on_line = 14, text = "x = x + 1", indent = 2 })
run:new_line("cond.lua", { on_line = 14, text = "end", indent = 0 })
run:new_line("no-indent-after-paren-pairs.lua", { on_line = 3, text = "x = x + 1", indent = 0 })
run:new_line("no-indent-after-paren-pairs.lua", { on_line = 6, text = "x = x + 1", indent = 0 })
run:new_line("nested-table.lua", { on_line = 5, text = "{}", indent = 4 })
run:new_line("method_index_expr.lua", { on_line = 1, text = ":test()", indent = 2 })
run:new_line("method_index_expr.lua", { on_line = 3, text = "local a = 1", indent = 0 })
end)
end)