diff options
| author | Paul Buetow <paul@buetow.org> | 2026-06-22 09:07:07 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-06-22 09:07:07 +0300 |
| commit | 02f5f1419c4cb5fccc47a0ce4dbf3957e73b0e79 (patch) | |
| tree | 5ad976209e913bfcf8a022ea1d4c0d3cb0d45c60 /internal/ui/ultra.go | |
| parent | e2795b421a92ec16a64b1780dd71cb1a68b92680 (diff) | |
Add Taskwarrior shell promptv0.18.0
Add an in-app Taskwarrior command prompt for normal and ultra modes, including selected-task prefill, async completions, captured output, and non-interactive recurrence handling. Also preserve recurring-task delete/undo support in the staged changes.
Diffstat (limited to 'internal/ui/ultra.go')
| -rw-r--r-- | internal/ui/ultra.go | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/internal/ui/ultra.go b/internal/ui/ultra.go index d246726..0d5f57b 100644 --- a/internal/ui/ultra.go +++ b/internal/ui/ultra.go @@ -94,7 +94,8 @@ func (m Model) ultraHelpSections() []helpSection { {key: "o", desc: "open URL from description"}, {key: "s", desc: "start/stop task"}, {key: "d", desc: "mark task done"}, - {key: "U", desc: "undo last done"}, + {key: "D", desc: "delete task/recurring series"}, + {key: "U", desc: "undo last done/delete"}, {key: "+", desc: "add new task"}, }, }, @@ -118,6 +119,8 @@ func (m Model) ultraHelpSections() []helpSection { items: []helpItem{ {key: "/", desc: "search ultra cards"}, {key: "n, N", desc: "next/previous match"}, + {key: ":", desc: "run task command prompt"}, + {key: ";", desc: "run task command prompt for selected task"}, }, }, { @@ -397,6 +400,8 @@ func (m *Model) ultraInputOverlay() string { return m.addInput.View() case m.searching: return m.searchInput.View() + case m.shellActive: + return m.shellInput.View() default: return "" } @@ -1055,6 +1060,8 @@ func (m *Model) handleUltraMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { return m.handleUltraToggleStart() case "d": return m.handleUltraMarkDone() + case "D": + return m.handleUltraDeleteTask() case "o": return m.handleOpenURL() case "p": @@ -1077,6 +1084,10 @@ func (m *Model) handleUltraMode(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { return m.handleUltraSetRecurrence() case "f": return m.handleFilter() + case ":": + return m.handleShellPrompt() + case ";": + return m.handleShellPromptForSelectedTask() case "+": m.ultraClearFocusedID() return m.handleAddTask() @@ -1204,6 +1215,14 @@ func (m *Model) handleUltraMarkDone() (tea.Model, tea.Cmd) { return m, m.startBlink(id, true) } +func (m *Model) handleUltraDeleteTask() (tea.Model, tea.Cmd) { + if _, ok := m.ultraPrepareSelectedTask(); !ok { + return m, nil + } + + return m.handleDeleteTask() +} + func (m *Model) handleUltraSetPriority() (tea.Model, tea.Cmd) { if _, ok := m.ultraPrepareSelectedTask(); !ok { return m, nil |
