refactor: canonicalize internal metadata field names
Problem: `pending.Metadata` used shorthand field names (`cat`, `rec`, `rec_mode`) matching user-facing token syntax, coupling internal representation to config. `RecurSpec.from_completion` used a boolean where a `pending.RecurMode` alias exists. `category_syntax` was hardcoded to `'cat'` with no config option. Solution: rename `Metadata` fields to `category`/`recur`/`recur_mode`, add `category_syntax` config option (default `'cat'`), rename `ParsedEntry` fields to match, replace `RecurSpec.from_completion` with `mode: pending.RecurMode`, and restore `[string]` indexer on `pending.ForgeConfig` alongside explicit fields.
This commit is contained in:
parent
4710e6197f
commit
05871fa1a5
12 changed files with 96 additions and 67 deletions
|
|
@ -136,9 +136,11 @@ function M.omnifunc(findstart, base)
|
|||
local dk = date_key()
|
||||
local rk = recur_key()
|
||||
|
||||
local ck = config.get().category_syntax or 'cat'
|
||||
|
||||
local checks = {
|
||||
{ vim.pesc(dk) .. ':([%S]*)$', dk },
|
||||
{ 'cat:([%S]*)$', 'cat' },
|
||||
{ vim.pesc(ck) .. ':([%S]*)$', ck },
|
||||
{ vim.pesc(rk) .. ':([%S]*)$', rk },
|
||||
}
|
||||
for _, b in ipairs(forge.backends()) do
|
||||
|
|
@ -172,10 +174,10 @@ function M.omnifunc(findstart, base)
|
|||
table.insert(matches, { word = c.word, menu = '[' .. source .. ']', info = c.info })
|
||||
end
|
||||
end
|
||||
elseif source == 'cat' then
|
||||
elseif source == (config.get().category_syntax or 'cat') then
|
||||
for _, c in ipairs(get_categories()) do
|
||||
if base == '' or c:sub(1, #base) == base then
|
||||
table.insert(matches, { word = c, menu = '[cat]' })
|
||||
table.insert(matches, { word = c, menu = '[' .. source .. ']' })
|
||||
end
|
||||
end
|
||||
elseif source == rk then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue