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

@ -26,7 +26,7 @@ describe('views', function()
s:add({ description = 'Task A', category = 'Work' })
s:add({ description = 'Task B', category = 'Work' })
local lines, meta = views.category_view(s:active_tasks())
assert.are.equal('## Work', lines[1])
assert.are.equal('# Work', lines[1])
assert.are.equal('header', meta[1].type)
assert.is_true(lines[2]:find('Task A') ~= nil)
assert.is_true(lines[3]:find('Task B') ~= nil)
@ -243,8 +243,8 @@ describe('views', function()
end
end
end
assert.are.equal('## Work', first_header)
assert.are.equal('## Inbox', second_header)
assert.are.equal('# Work', first_header)
assert.are.equal('# Inbox', second_header)
end)
it('appends categories not in category_order after ordered ones', function()
@ -259,8 +259,8 @@ describe('views', function()
table.insert(headers, lines[i])
end
end
assert.are.equal('## Work', headers[1])
assert.are.equal('## Errands', headers[2])
assert.are.equal('# Work', headers[1])
assert.are.equal('# Errands', headers[2])
end)
it('preserves insertion order when category_order is empty', function()
@ -273,8 +273,8 @@ describe('views', function()
table.insert(headers, lines[i])
end
end
assert.are.equal('## Alpha', headers[1])
assert.are.equal('## Beta', headers[2])
assert.are.equal('# Alpha', headers[1])
assert.are.equal('# Beta', headers[2])
end)
end)