Repository navigation
This is a maintenance release focused on code-quality improvements, internal deduplication, and a correctness fix for C/C++ variable-declaration injection.
Changelog (v0.3.0 → v0.3.1)
Fixed
- C/C++ name_pattern injection missed pointer/array declarations.
host/_c_family.luapreviously captureddeclarator: (_)which matchedpointer_declarator(raw text*summary_sql). The anchored^...$Lua pattern therefore failed to match.- Fixed by explicitly matching
(identifier),(pointer_declarator declarator: (identifier)), and(array_declarator declarator: (identifier)).
- Removed duplicate unanchored C/cpp
name_patternrules frombuiltin.lua([%a_][%w_]*[Ss][Qq][Ll]without^...$), which could incorrectly match mid-string identifiers.
Changed
- Extracted shared display helpers (
add,add_kv,list_or_none,append_section,open_float) fromdebug.lua/health.luaintohost/_util.lua. Removed ~90 lines of duplication. - Unified internal API style:
runtime.lua: all path construction now usesvim.fs.joinpath.query_builder.lua:table.insertreplaced witht[#t+1].health.lua:vim.fn.filereadablereplaced withvim.uv.fs_stat.
- Removed dead code:
rules.lua: deleted privatecopy_list()helper;clone_rules()now delegates fully tovim.deepcopy.xml.lua: removed privatejoin_tags()and reusedutil.join_fn_list().
- Hardened
query_store.root_dir(): replaced fragile chainedvim.fs.dirnamewithvim.fn.fnamemodify(..., ":p:h:h:h"). - Merged
generated_languages()intosupported_languages()alias (identical sets). - Added clarifying comments for
config.luafield aliasing,arg_prefix(), and#any-lua-match?vs#lua-match?usage in concatenated-string hosts.
Refactored
host/_c_family.lua: extractedvalue_pair()helper to deduplicate the four identicalif backslash_value_str then ... endpatterns inrender_name_patternandrender_call, cutting ~13 lines of repetition.