feat: add <C-a> / <C-x> keymaps for priority increment/decrement (#114)
* feat(s3): create bucket interactively during auth when unconfigured Problem: when a user runs `:Pending s3 auth` with no bucket configured, auth succeeds but offers no way to create the bucket. The user must manually run `aws s3api create-bucket` and update their config. Solution: add `util.input()` coroutine-aware prompt wrapper and a `create_bucket()` flow in `s3.lua` that prompts for bucket name and region, handles the `us-east-1` LocationConstraint quirk, and logs a config snippet on success. Called automatically from `auth()` when `sync.s3.bucket` is absent. * ci: typing * feat(parse): add `parse_duration_to_days` for duration string conversion Problem: The archive command accepted only a bare integer for days, inconsistent with the `+Nd`/`+Nw`/`+Nm` duration syntax used elsewhere. Solution: Add `parse_duration_to_days()` supporting `Nd`, `Nw`, `Nm`, and bare integers. Returns nil on invalid input for caller error handling. * feat(archive): duration syntax and confirmation prompt Problem: `:Pending archive` accepted only a bare integer for days and silently deleted tasks with no confirmation, risking accidental data loss. Solution: Accept duration strings (`7d`, `3w`, `2m`) via `parse.parse_duration_to_days()`, show a `vim.ui.input` confirmation prompt before removing tasks, and skip the prompt when zero tasks match. * feat: add `<C-a>` / `<C-x>` keymaps for priority increment/decrement Problem: Priority could only be cycled with `g!` (0→1→2→3→0), with no way to directly increment or decrement. Solution: Add `adjust_priority()` with clamping at 0 and `max_priority`, exposed as `increment_priority()` / `decrement_priority()` on `<C-a>` / `<C-x>`. Includes `<Plug>` mappings and vimdoc. * fix(s3): use parenthetical defaults in bucket creation prompts Problem: `util.input` with `default` pre-filled the input field, and the success message said "Add to your config" ambiguously. Solution: Show defaults in prompt text as `(default)` instead of pre-filling, and clarify the message to "Add to your pending.nvim config". * ci: format
This commit is contained in:
parent
aa63b9bd6c
commit
6b23e6810e
7 changed files with 106 additions and 15 deletions
|
|
@ -299,6 +299,8 @@ Default buffer-local keys: ~
|
|||
`gz` Undo the last `:w` save (`undo`)
|
||||
`o` Insert a new task line below (`open_line`)
|
||||
`O` Insert a new task line above (`open_line_above`)
|
||||
`<C-a>` Increment priority (clamped at `max_priority`) (`priority_up`)
|
||||
`<C-x>` Decrement priority (clamped at 0) (`priority_down`)
|
||||
`J` Move task down within its category (`move_down`)
|
||||
`K` Move task up within its category (`move_up`)
|
||||
`zc` Fold the current category section (requires `folding`)
|
||||
|
|
@ -413,6 +415,16 @@ old keys to `false`: >lua
|
|||
Toggle blocked status for the task under the cursor.
|
||||
If the task is already `blocked`, reverts to `pending`.
|
||||
|
||||
*<Plug>(pending-priority-up)*
|
||||
<Plug>(pending-priority-up)
|
||||
Increment the priority level for the task under the cursor, clamped
|
||||
at `max_priority`. Default key: `<C-a>`.
|
||||
|
||||
*<Plug>(pending-priority-down)*
|
||||
<Plug>(pending-priority-down)
|
||||
Decrement the priority level for the task under the cursor, clamped
|
||||
at 0. Default key: `<C-x>`.
|
||||
|
||||
*<Plug>(pending-open-line)*
|
||||
<Plug>(pending-open-line)
|
||||
Insert a correctly-formatted blank task line below the cursor.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue