summaryrefslogtreecommitdiff
path: root/internal/askcli/command_complete_uuids.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-27 06:23:24 +0200
committerPaul Buetow <paul@buetow.org>2026-03-27 06:23:24 +0200
commit2edeaa610553b667776010bf2e9f5596aaa8ddbd (patch)
treeb32b5c3946061f3e06ae274b5c4260358985f04f /internal/askcli/command_complete_uuids.go
parent6b964400deb653d2c47aa8932ab5444346833b0d (diff)
task 73fabcf6-d4a1-4bf3-aae1-a390a734e517: extend ask selector completion
Diffstat (limited to 'internal/askcli/command_complete_uuids.go')
-rw-r--r--internal/askcli/command_complete_uuids.go19
1 files changed, 16 insertions, 3 deletions
diff --git a/internal/askcli/command_complete_uuids.go b/internal/askcli/command_complete_uuids.go
index 755c3bb..8d37a80 100644
--- a/internal/askcli/command_complete_uuids.go
+++ b/internal/askcli/command_complete_uuids.go
@@ -18,14 +18,27 @@ func (d Dispatcher) handleCompleteUUIDs(ctx context.Context, stdout, stderr io.W
fmt.Fprintf(stderr, "error: failed to parse task data: %v\n", err)
return 1, nil
}
- if _, err := ensureTaskAliases(tasks); err != nil {
+ aliases, err := ensureTaskAliases(tasks)
+ if err != nil {
fmt.Fprintf(stderr, "warning: failed to update task alias cache: %v\n", err)
+ aliases = nil
+ }
+ for _, selector := range taskCompletionSelectors(tasks, aliases) {
+ _, _ = io.WriteString(stdout, selector+"\n")
}
+ return 0, nil
+}
+
+func taskCompletionSelectors(tasks []TaskExport, aliases map[string]string) []string {
+ selectors := make([]string, 0, len(tasks)*2)
for _, task := range tasks {
if task.UUID == "" {
continue
}
- _, _ = io.WriteString(stdout, task.UUID+"\n")
+ if alias := displayTaskAlias(task.UUID, aliases); alias != "" && alias != task.UUID {
+ selectors = append(selectors, alias)
+ }
+ selectors = append(selectors, task.UUID)
}
- return 0, nil
+ return selectors
}