refactor(icons): ascii defaults, checkbox overlays, and cleanup (#57)

* docs: remove unnecessary mini.ai recipe from vimdoc

Problem: the `*pending-mini-ai*` section assumed mini.ai intercepts
buffer-local `at`/`it`/`aC`/`iC` mappings, requiring a manual
`vim.b.miniai_config` workaround.

Solution: remove the section. Neovim's keymap resolver already
prioritizes longer buffer-local mappings over mini.ai's global
`a`/`i` handlers — no recipe needed.

* refactor(icons): unify category/header icon and use checkbox overlays

Problem: `header` and `category` were separate icons for the same
concept. The icon overlay replaced `[ ]` with a bare character,
hiding the markdown checkbox syntax. Header format `## ` produced
a double-space with single-char icons.

Solution: merge `header` into `category` (one icon for both header
lines and EOL labels). Overlay renders `[icon]` preserving bracket
syntax. Change header line format from `## ` to `# ` so the
2-char overlay (`# `) maps cleanly.

* ci: remove empty `assets/` placeholder
This commit is contained in:
Barrett Ruth 2026-03-04 18:44:41 -05:00
parent cca43dc328
commit 910c8d2d69
10 changed files with 61 additions and 152 deletions

View file

@ -15,45 +15,42 @@ describe('icons', function()
it('has default icon values', function()
local icons = config.get().icons
assert.equals('-', icons.pending)
assert.equals(' ', icons.pending)
assert.equals('x', icons.done)
assert.equals('!', icons.priority)
assert.equals('>', icons.header)
assert.equals('.', icons.due)
assert.equals('~', icons.recur)
assert.equals('#', icons.category)
end)
it('allows overriding individual icons', function()
vim.g.pending = { icons = { pending = '', done = '' } }
vim.g.pending = { icons = { pending = '*', done = '+' } }
config.reset()
local icons = config.get().icons
assert.equals('', icons.pending)
assert.equals('', icons.done)
assert.equals('*', icons.pending)
assert.equals('+', icons.done)
assert.equals('!', icons.priority)
assert.equals('>', icons.header)
assert.equals('#', icons.category)
end)
it('allows overriding all icons', function()
vim.g.pending = {
icons = {
pending = '-',
done = 'x',
priority = '!',
header = '>',
done = '+',
priority = '*',
due = '@',
recur = '~',
category = '+',
recur = '^',
category = '&',
},
}
config.reset()
local icons = config.get().icons
assert.equals('-', icons.pending)
assert.equals('x', icons.done)
assert.equals('!', icons.priority)
assert.equals('>', icons.header)
assert.equals('+', icons.done)
assert.equals('*', icons.priority)
assert.equals('@', icons.due)
assert.equals('~', icons.recur)
assert.equals('+', icons.category)
assert.equals('^', icons.recur)
assert.equals('&', icons.category)
end)
end)