summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-28 08:57:13 +0200
committerPaul Buetow <paul@buetow.org>2026-04-07 09:24:18 +0300
commit2a79baa18eb0ed682601e2911af48fff699c8531 (patch)
tree3cfd0724a059d23a2fe0c693fc502b02a5523f57
parentbba1879c343ab4dee38bb6547b00a527ff6e96b8 (diff)
ui: add ultra mode state (vh)
-rw-r--r--internal/ui/table.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/ui/table.go b/internal/ui/table.go
index 1d593a0..b42940a 100644
--- a/internal/ui/table.go
+++ b/internal/ui/table.go
@@ -78,6 +78,17 @@ type detailViewState struct {
detailDescEditing bool // whether the description editor is open
}
+// ultraState holds the state for the ultra mode task list and its search UI.
+type ultraState struct {
+ showUltra bool
+ ultraCursor int
+ ultraOffset int
+ ultraSearching bool
+ ultraSearchInput textinput.Model
+ ultraSearchRegex *regexp.Regexp
+ ultraFiltered []int
+}
+
// editState holds inline field-editing state for the task table.
// Each editing mode (annotate, desc, tags, …) is mutually exclusive;
// clearEditingModes resets them all before activating a new one.
@@ -132,6 +143,7 @@ type Model struct {
blinkState // row blink animation (see blinkState)
searchState // task-table and help-screen search (see searchState)
detailViewState // task detail overlay (see detailViewState)
+ ultraState // ultra mode task list and search state (see ultraState)
editState // inline field editing (see editState)
cellExpanded bool
@@ -325,6 +337,8 @@ func New(filters []string, browserCmd string) (Model, error) {
m.searchInput.Prompt = "search: "
m.helpSearchInput = textinput.New()
m.helpSearchInput.Prompt = "help search: "
+ m.ultraSearchInput = textinput.New()
+ m.ultraSearchInput.Prompt = "ultra search: "
m.filterInput = textinput.New()
m.filterInput.Prompt = "filter: "