todo editor
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# TodoApp
|
||||
|
||||
A terminal app for inspecting Pi project todos. The Bubble Tea UI currently shows the selected project's `.pi/todos` directory and a file count; browsing and editing in the UI are planned in later tickets. The `internal/todos` storage package already reads and writes Pi-compatible Markdown files, using `.lock` files and atomic replacements for edits.
|
||||
A terminal app for Pi project todos. The Bubble Tea UI browses and searches a project's `.pi/todos` directory, shows full Markdown bodies, and creates, edits, closes, and reopens todos. The `internal/todos` storage package uses Pi-compatible Markdown files, `.lock` files, and atomic replacements for edits.
|
||||
|
||||
## Run
|
||||
|
||||
@@ -12,4 +12,14 @@ go run . --project /path/to/repo # inspect another project
|
||||
go test ./...
|
||||
```
|
||||
|
||||
If `.pi/todos` does not exist, the app shows an empty state without creating files. If the project path is invalid or the todo directory cannot be read, it exits with an error. Press `q` or `Ctrl+C` to exit the TUI.
|
||||
If `.pi/todos` does not exist, the app shows an empty state without creating files. Bad todo files are reported as warnings without hiding valid todos. If the project path is invalid or the todo directory cannot be read, it exits with an error.
|
||||
|
||||
## Controls
|
||||
|
||||
- `↑`/`↓` or `j`/`k`: select a todo; `Enter`: view its full Markdown body.
|
||||
- `/`: search titles, IDs, tags, statuses, and body text. Type to filter, then `Enter` or `Esc` to finish. In the list, `Esc` clears the filter.
|
||||
- In detail view, use `↑`/`↓`, `PgUp`/`PgDn`, `Home`/`End` to scroll; `Esc` returns to the list.
|
||||
- `n`: create a todo; `e`: edit the selected todo (also works in detail view).
|
||||
- In the editor, `Tab`/`Shift+Tab` moves between title, comma-separated tags, and Markdown body. `Enter` adds a line in the body. `←`/`→` moves the cursor; `Ctrl+S` saves. `Esc` cancels, with confirmation if there are unsaved changes.
|
||||
- `x`: close the selected todo; `o`: reopen a closed todo. Both ask for confirmation (`y`/`n`).
|
||||
- `r`: reload todos from disk; `q` or `Ctrl+C`: quit.
|
||||
|
||||
Reference in New Issue
Block a user