diff --git a/src/formatter.lua b/src/formatter.lua index 00cdf01..dfd68ed 100644 --- a/src/formatter.lua +++ b/src/formatter.lua @@ -285,7 +285,11 @@ function M.format_document(content, options) if_base_level = nil end in_fb_call = false -- Reset FB call state - indent_level = math.max(0, indent_level - 1) + -- Don't decrease indent for END_IF - it stays at same level as content (per TIA Portal) + -- Only decrease for other enders like END_REGION, END_CASE, END_FOR, etc. + if kw ~= "END_IF" then + indent_level = math.max(0, indent_level - 1) + end if needs_semicolon(trimmed) then formatted_line = formatted_line .. ";" end