Merge branch 'feat/db_udt_interactive_colapse_extend' into develop

This commit is contained in:
2026-02-20 23:53:10 +01:00
+14 -3
View File
@@ -109,11 +109,22 @@ function M.expand_all_attr_blocks()
vim.notify("Expanded " .. count .. " attribute block(s)", vim.log.levels.INFO) vim.notify("Expanded " .. count .. " attribute block(s)", vim.log.levels.INFO)
end end
-- Helper to make a pattern case-insensitive
local function case_insensitive_pattern(pattern)
return pattern:gsub("(%a)", function(c)
return "[" .. c:upper() .. c:lower() .. "]"
end)
end
-- Collapse all attribute blocks matching patterns in current buffer -- Collapse all attribute blocks matching patterns in current buffer
function M.collapse_all_attr_blocks(patterns) function M.collapse_all_attr_blocks(patterns)
patterns = patterns or { patterns = patterns or {
"^%s*EXTERNAL", -- Match EXTERNALACCESSIBLE, EXTERNALVISIBLE, etc. (with optional leading space) case_insensitive_pattern("^%s*EXTERNAL"), -- EXTERNALACCESSIBLE, EXTERNALVISIBLE
"^%s*S7_", -- Match S7_Optimized_Access, etc. (with optional leading space) case_insensitive_pattern("^%s*S7_"), -- S7_Optimized_Access
case_insensitive_pattern("^%s*NonRetain"), -- NonRetain
case_insensitive_pattern("^%s*Retain"), -- Retain (but not NonRetain)
"^%s*%w+%s*:=", -- key := value
"^%s*%w+%s*$", -- single word attribute
} }
local bufnr = vim.api.nvim_get_current_buf() local bufnr = vim.api.nvim_get_current_buf()
@@ -184,7 +195,7 @@ function M.setup()
vim.api.nvim_create_autocmd("BufUnload", { vim.api.nvim_create_autocmd("BufUnload", {
group = augroup, group = augroup,
pattern = "*.scl", pattern = { "*.scl", "*.udt", "*.db" },
callback = function(args) callback = function(args)
M.clear_buffer_state(args.buf) M.clear_buffer_state(args.buf)
end, end,