feat(customization): icons config, PendingTab, and demo infrastructure (#46)

* feat(config): add icons table with unicode defaults

* feat(buffer): render icon overlays from config.icons

Problem: status characters ([ ], [x], [!]) and metadata prefixes are
hardcoded literals with no user customization.

Solution: read config.icons in apply_extmarks and apply overlay
extmarks for checkboxes/headers, replace hardcoded recur ↺ with
icons.recur, and prefix due/category virt_text with configurable
icon characters.

* feat(plugin): add PendingTab command and <Plug>(pending-tab)

* docs: add icons config, PendingTab recipes, and demo infrastructure

Problem: icon customization and auto-start workflow are undocumented;
no demo asset exists for the README.

Solution: document pending.Icons in vimdoc with nerd font and ASCII
recipes, add PendingTab to commands and mappings, add open-on-startup
recipe, add demo-init.lua and demo.tape for VHS screenshot generation,
add assets/ directory, add README icons section and demo placeholder.

* ci: format
This commit is contained in:
Barrett Ruth 2026-02-26 19:20:29 -05:00 committed by GitHub
parent 1748e5caa1
commit 64b19360b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 248 additions and 4 deletions

View file

@ -2,7 +2,7 @@
Edit tasks like text. `:w` saves them.
<!-- insert preview -->
![demo](assets/demo.gif)
## Requirements
@ -24,6 +24,21 @@ luarocks install pending.nvim
:help pending.nvim
```
## Icons
pending.nvim renders task status and metadata using configurable icon characters. The defaults use plain unicode (no nerd font required):
```lua
vim.g.pending = {
icons = {
pending = '○', done = '✓', priority = '●',
header = '▸', due = '·', recur = '↺', category = '#',
},
}
```
See `:help pending.Icons` for nerd font examples.
## Acknowledgements
- [dooing](https://github.com/atiladefreitas/dooing)