fix: align multiline assignment continuation lines

- Fix formatter to detect continuation lines that don't start with
  operators (e.g., #variable AND ... continuation lines)
- All continuation lines now align vertically after :=
This commit is contained in:
2026-02-23 13:48:21 +01:00
parent 33ca0e3a33
commit 3af2ef078a
+11 -1
View File
@@ -330,10 +330,20 @@ function M.format_document(content, options)
trimmed = collapse_attribute_block(trimmed) trimmed = collapse_attribute_block(trimmed)
-- Check if continuing assignment -- Check if continuing assignment
if in_assignment and is_assignment_continuation(trimmed) then -- Continuation if: in assignment AND (starts with operator OR doesn't start new statement)
if in_assignment then
local starts_with_operator = is_assignment_continuation(trimmed)
local is_new_statement = trimmed:match("^%w+") and (
trimmed:match(":=") or
BLOCKS[trimmed:match("^([%w_]+)")] or
SAME_LEVEL[trimmed:match("^([%w_]+)")] or
VAR_KEYWORDS[trimmed:match("^([%w_]+)")]
)
if starts_with_operator or not is_new_statement then
table.insert(formatted_lines, assignment_continuation_indent .. trimmed) table.insert(formatted_lines, assignment_continuation_indent .. trimmed)
goto continue goto continue
end end
end
in_assignment = false in_assignment = false
-- Check if starting FB call -- Check if starting FB call