refactor(config): default icons to ascii (#55)

* refactor(config): default icons to ascii

Problem: default icons used unicode characters (○, ✓, ●, ▸, ·, ↺)
which render poorly in some terminals and font configurations.

Solution: replace defaults with ascii equivalents (-, x, !, >, ., ~).
Users can still override to unicode or nerd font icons via config.

* ci: ignore library type checking
This commit is contained in:
Barrett Ruth 2026-03-04 17:49:30 -05:00
parent bc260e7ed0
commit 76aa22472d
6 changed files with 28 additions and 36 deletions

View file

@ -2,6 +2,7 @@
"runtime.version": "LuaJIT", "runtime.version": "LuaJIT",
"runtime.path": ["lua/?.lua", "lua/?/init.lua"], "runtime.path": ["lua/?.lua", "lua/?/init.lua"],
"diagnostics.globals": ["vim", "jit"], "diagnostics.globals": ["vim", "jit"],
"diagnostics.libraryFiles": "Disable",
"workspace.library": [ "workspace.library": [
"$VIMRUNTIME/lua", "$VIMRUNTIME/lua",
"${3rd}/luv/library", "${3rd}/luv/library",

View file

@ -26,18 +26,18 @@ luarocks install pending.nvim
## Icons ## Icons
pending.nvim renders task status and metadata using configurable icon characters. The defaults use plain unicode (no nerd font required): pending.nvim renders task status and metadata using configurable icon characters. The defaults are ASCII-only (no unicode or nerd font required):
```lua ```lua
vim.g.pending = { vim.g.pending = {
icons = { icons = {
pending = '○', done = '✓', priority = '●', pending = '-', done = 'x', priority = '!',
header = '▸', due = '·', recur = '↺', category = '#', header = '>', due = '.', recur = '~', category = '#',
}, },
} }
``` ```
See `:help pending.Icons` for nerd font examples. See `:help pending.Icons` for unicode and nerd font examples.
## Acknowledgements ## Acknowledgements

View file

@ -664,12 +664,12 @@ Fields: ~
{icons} (table) *pending.Icons* {icons} (table) *pending.Icons*
Icon characters displayed in the buffer. Fields: Icon characters displayed in the buffer. Fields:
{pending} Uncompleted task icon. Default: '' {pending} Uncompleted task icon. Default: '-'
{done} Completed task icon. Default: '' {done} Completed task icon. Default: 'x'
{priority} Priority task icon. Default: '' {priority} Priority task icon. Default: '!'
{header} Category header prefix. Default: '' {header} Category header prefix. Default: '>'
{due} Due date prefix. Default: '·' {due} Due date prefix. Default: '.'
{recur} Recurrence prefix. Default: '' {recur} Recurrence prefix. Default: '~'
{category} Category label prefix. Default: '#' {category} Category label prefix. Default: '#'
============================================================================== ==============================================================================

View file

@ -82,12 +82,12 @@ local defaults = {
}, },
sync = {}, sync = {},
icons = { icons = {
pending = '', pending = '-',
done = '', done = 'x',
priority = '', priority = '!',
header = '', header = '>',
due = '·', due = '.',
recur = '', recur = '~',
category = '#', category = '#',
}, },
} }

View file

@ -4,15 +4,6 @@ vim.fn.mkdir(tmpdir, 'p')
vim.g.pending = { vim.g.pending = {
data_path = tmpdir .. '/tasks.json', data_path = tmpdir .. '/tasks.json',
icons = {
pending = '',
done = '',
priority = '',
header = '',
due = '·',
recur = '',
category = '#',
},
} }
local store = require('pending.store') local store = require('pending.store')

View file

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