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.
This commit is contained in:
Barrett Ruth 2026-03-04 18:38:10 -05:00
parent 26b14b6ba8
commit 530009d830
9 changed files with 61 additions and 81 deletions

View file

@ -663,14 +663,18 @@ Fields: ~
table. Currently only `gcal` is built-in.
{icons} (table) *pending.Icons*
Icon characters displayed in the buffer. Fields:
{pending} Uncompleted task icon. Default: '-'
{done} Completed task icon. Default: 'x'
{priority} Priority task icon. Default: '!'
{header} Category header prefix. Default: '>'
Icon characters displayed in the buffer. The
{pending}, {done}, and {priority} characters
appear inside brackets (`[icon]`) as an overlay
on the checkbox. The {category} character
prefixes both header lines and EOL category
labels. Fields:
{pending} Pending task character. Default: ' '
{done} Done task character. Default: 'x'
{priority} Priority task character. Default: '!'
{due} Due date prefix. Default: '.'
{recur} Recurrence prefix. Default: '~'
{category} Category label prefix. Default: '#'
{category} Category prefix. Default: '#'
==============================================================================
STORE RESOLUTION *pending-store-resolution*
@ -847,10 +851,6 @@ Event-driven statusline refresh: >lua
Nerd font icons: >lua
vim.g.pending = {
icons = {
pending = '',
done = '',
priority = '',
header = '',
due = '',
recur = '󰁯',
category = '',
@ -858,20 +858,6 @@ Nerd font icons: >lua
}
<
ASCII fallback icons: >lua
vim.g.pending = {
icons = {
pending = '-',
done = 'x',
priority = '!',
header = '>',
due = '@',
recur = '~',
category = '+',
},
}
<
Open tasks in a new tab on startup: >lua
vim.api.nvim_create_autocmd('VimEnter', {
callback = function()