Commit graph

9 commits

Author SHA1 Message Date
79cef994ce feat(diff): add buffer-to-store diff algorithm
Problem: need to reconcile buffer edits against the JSON store
on :w, handling creates, deletes, updates, reorders, and
duplicate IDs from yank/paste.

Solution: add diff module that parses buffer lines, matches
against stored tasks by ID, creates new tasks for unknown or
duplicate IDs, marks removed tasks as deleted, and updates
changed fields.
2026-02-24 15:09:36 -05:00
a102092cca feat(buffer): add scratch buffer with concealment and extmarks
Problem: need a buffer to display tasks with concealed IDs,
virtual text due dates, strikethrough for done items, and
auto-indent.

Solution: add buffer module with acwrite scratch buffer, syntax
conceal for /id/ prefixes, right-aligned due date extmarks,
header/done highlighting, indentexpr, and view toggling.
2026-02-24 15:09:29 -05:00
3a5aa5bcc3 feat(views): add category and priority view renderers
Problem: need to render task lists grouped by category or sorted
by priority with concealed IDs and metadata.

Solution: add category_view and priority_view functions that
produce buffer lines with hidden /id/ prefixes, priority flags,
and line metadata for extmark placement.
2026-02-24 15:09:22 -05:00
09fb896a34 feat(parse): add inline metadata parser
Problem: need to extract due dates and categories from task
descriptions typed in the buffer.

Solution: add right-to-left token parser for configurable date
syntax (default 'due:') and cat: metadata keys. Supports
Category: prefix syntax for :Todo add commands.
2026-02-24 15:09:15 -05:00
62b1b020a3 feat(store): add JSON data store with CRUD operations
Problem: need persistent task storage with forward-compatible
schema and unknown field preservation.

Solution: add store module with load/save, add/update/delete,
ID allocation, and UDA round-trip preservation. Data stored at
stdpath('data')/todo/tasks.json with version 1 schema.
2026-02-24 15:09:07 -05:00
88d060f0ed feat(config): add configuration module
Problem: need user-configurable settings with sensible defaults.

Solution: add config module that merges vim.g.todo with defaults
for data_path, default_view, default_category, date_format, and
date_syntax.
2026-02-24 15:08:59 -05:00
bd80fff4db ci: add GitHub workflows and issue templates
Problem: need CI for tests, quality checks, luarocks publishing,
and structured issue/discussion templates.

Solution: add test, quality, and luarocks workflows mirroring
diffs.nvim conventions. Add bug report, feature request, and
Q&A templates.
2026-02-24 15:08:53 -05:00
6ded2388b7 build: add tooling and dev environment configs
Problem: need formatting, linting, testing, and nix dev shell configs.

Solution: add stylua, selene, lua-language-server, busted, pre-commit,
flake.nix, and luarocks rockspec configuration.
2026-02-24 15:08:44 -05:00
6cc8fad646 build: initial repo scaffold
Problem: need project foundation files.

Solution: add MIT license, gitignore, and editorconfig.
2026-02-24 15:08:35 -05:00