generated from eblume/project-template
feat(nvim): do/late date chip (+ ↻) on task-view rows (§8)
Some checks failed
Build / validate (pull_request) Failing after 1m17s
Some checks failed
Build / validate (pull_request) Failing after 1m17s
`:Heph next`/`list` rows now render a compact relative do/late date chip (today/tomorrow/yesterday/MM-DD/YYYY-MM-DD, mirroring heph-tui's fmt) and a recurrence ↻, so scheduling is visible at a glance. `<CR>` already jumps to a row's canonical-context doc. e2e: a do-date-chip render assertion. Completes the §14 item-2 task-list UX wave. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4f291ce373
commit
9d84eb7427
5 changed files with 56 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: heph.nvim
|
||||
modified: 2026-06-01
|
||||
modified: 2026-06-03
|
||||
tags:
|
||||
- reference
|
||||
- design
|
||||
|
|
@ -84,7 +84,8 @@ doc whose owning task is followed via its `canonical-context` backlink. The
|
|||
`next`/`list` views render the titled rows the daemon returns (`list` enriched to
|
||||
carry titles + the context id, so no N+1 `node.get`) and are **interactive**:
|
||||
`<CR>` opens a task's context, `a` adds a task (prompt title + attention), `d`
|
||||
marks the task under the cursor done, `r` refreshes. Pickers use built-in
|
||||
marks the task under the cursor done, `r` refreshes. Each row also shows a
|
||||
compact **do/late date chip** (and a recurrence `↻`). Pickers use built-in
|
||||
`vim.ui.select`, auto-upgrading to Telescope when installed.
|
||||
|
||||
**Promotion** (`:Heph promote`) mints a committed task from the `- [ ]` line
|
||||
|
|
|
|||
|
|
@ -446,11 +446,11 @@ See [[design]] §5–§7 for the constraints later phases impose on present choi
|
|||
> The remaining work is the **UX roadmap agreed 2026-06-03** (design conversation with the owner). It is documented docs-first — the bigger items have design sections above (`heph-tui` UX in §8.1, frontmatter in §8.3, wiki-links-by-id in §8.4) — and built in this order:
|
||||
|
||||
1. ✅ **`heph-tui` — move-to-project (§8.1) — DONE:** the **`task.set_project` RPC** (tombstone the old `in-project` link + add the new — OR-set semantics, no task-scalar op; given project must be a live project-kind node) plus the TUI `m` list-pick overlay and `heph edit --project <name>|none` (which also fixed a duplicate-link bug in the old re-file path). Unblocks the project-edit path of the frontmatter surface (§8.3).
|
||||
2. **`heph-tui` task-list UX wave (§8.1) — no backend (`RankedTask` already carries every field):**
|
||||
2. ✅ **`heph-tui` task-list UX wave + nvim nav polish (§8.1/§8) — DONE (no backend; `RankedTask` already carries every field):**
|
||||
- ✅ **(a) flag column + project-colored bullets — DONE:** a leading `⚑` colored by attention (red/orange/blue; blank for white/none), and the bullet `●` colored by its project via a stable `hash(project_id) → hue` (FNV-1a → HSL → `Color::Rgb`). Hashing is chosen for stability-under-insertion over golden-angle spread; overlap is acceptable. The bullet **glyph shape** is reserved for future semantics. A per-project **color override** (stored on the project node, editable) is a later refinement — colors are derived client-side for now (no schema change).
|
||||
- ✅ **(e) scrollbar — DONE:** the task list grows a `ratatui` `Scrollbar` (tracking the selection) when content overflows; a `ListState` selection keeps the highlighted row scrolled into view.
|
||||
- ✅ **(b) sort toggle `s` — DONE:** **default**: attention (red→orange→white→blue) → days-overdue (descending; no-date = 0) → project (name) → `created_at` (FIFO). **project mode**: project is primary, with dimmed **`──── Name ────` separators** riding atop each group's first task (the cursor only lands on real tasks). View filtering always runs **before** the sort. (`skip` moved to `S` to free `s`.)
|
||||
- ⏳ **nvim task-navigation polish (§8)** — show do/late in `next`/`list` rows and a clean jump-to-context gesture (read/navigate, not field-edit). *(The only piece of item 2 left.)*
|
||||
- ✅ **nvim task-navigation polish (§8) — DONE:** `:Heph next`/`list` rows now carry a compact **do/late date chip** (and a recurrence `↻`); `<CR>` already jumps to a row's canonical-context doc (read/navigate, not field-edit).
|
||||
3. ⏳ **Tags (§4, §8.3) — promoted from deferred:** `NodeKind::Tag` exists but has no machinery. Add **tag-as-node + an OR-set tag link** (mirroring `in-project`) + `tag.add`/`tag.remove` RPCs + enumeration. Prerequisite for the `tags:` line of the frontmatter surface (§8.3) and the eventual zk import ([[design]]); the goal is **one canonical tag set** across all of heph.
|
||||
4. ⏳ **YAML frontmatter as an edit surface (§8.3) — docs-first C1:** generated-on-read, stripped-and-ignored-on-write in `heph-core`; `heph.nvim` diffs it into structured RPCs. See §8.3.
|
||||
5. ⏳ **Wiki-links by node id (§8.4) — docs-first C1 (maybe C2):** canonical `[[NODEID]]` at rest, expanded/concealed for display; a `[[` picker; no name-links in the DB. Includes a one-time body fixup. See §8.4.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue