fix: clear attr_toggle state after formatting

When :LspSCLFormat is used, line numbers and positions change,
but the attr_toggle module stores state based on old positions.
This caused toggle/expand/collapse to not work after formatting.

Now clears the attr_toggle buffer state after formatting so that
users can collapse blocks fresh after formatting.
This commit is contained in:
2026-02-19 11:17:59 +01:00
parent 35bf9ab781
commit becf45d348
+10
View File
@@ -36,6 +36,11 @@ function M.setup(opts)
if opts.lsp and opts.lsp.formatting then if opts.lsp and opts.lsp.formatting then
vim.api.nvim_buf_create_user_command(b, "LspSCLFormat", function() vim.api.nvim_buf_create_user_command(b, "LspSCLFormat", function()
vim.lsp.buf.format({ name = "scl_lsp" }) vim.lsp.buf.format({ name = "scl_lsp" })
-- Clear attr_toggle state since line positions may have changed
local ok, at = pcall(require, "scl.attr_toggle")
if ok then
at.clear_buffer_state(vim.api.nvim_get_current_buf())
end
end, {}) end, {})
end end
end, end,
@@ -53,6 +58,11 @@ function M.setup(opts)
-- Create global format command (works on current buffer) -- Create global format command (works on current buffer)
vim.api.nvim_create_user_command("LspSCLFormat", function() vim.api.nvim_create_user_command("LspSCLFormat", function()
vim.lsp.buf.format({ name = "scl_lsp" }) vim.lsp.buf.format({ name = "scl_lsp" })
-- Clear attr_toggle state since line positions may have changed
local ok, at = pcall(require, "scl.attr_toggle")
if ok then
at.clear_buffer_state(vim.api.nvim_get_current_buf())
end
end, {}) end, {})
-- Start LSP for any existing scl buffers (handles lazy loading case) -- Start LSP for any existing scl buffers (handles lazy loading case)