diff options
Diffstat (limited to 'internal/askcli/command_complete_uuids.go')
| -rw-r--r-- | internal/askcli/command_complete_uuids.go | 19 |
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 } |
