summaryrefslogtreecommitdiff
path: root/internal/askcli/completion.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/askcli/completion.go')
-rw-r--r--internal/askcli/completion.go27
1 files changed, 14 insertions, 13 deletions
diff --git a/internal/askcli/completion.go b/internal/askcli/completion.go
index e947495..6033415 100644
--- a/internal/askcli/completion.go
+++ b/internal/askcli/completion.go
@@ -48,12 +48,6 @@ var askUUIDCompletionItems = []fishCompletionItem{
{name: "delete", description: "Delete a task"},
}
-var askDepUUIDCompletionItems = []fishCompletionItem{
- {name: "add", description: "Add a dependency"},
- {name: "rm", description: "Remove a dependency"},
- {name: "list", description: "List dependencies"},
-}
-
func FishCompletion() string {
var b strings.Builder
writeFishPreamble(&b)
@@ -67,12 +61,8 @@ func FishCompletion() string {
for _, item := range askDepCompletionItems {
writeFishCompletionLine(&b, "__ask_in_dep_context", item)
}
- for _, item := range askUUIDCompletionItems {
- writeFishUUIDCompletionLine(&b, "__ask_in_uuid_context", item.description)
- }
- for _, item := range askDepUUIDCompletionItems {
- writeFishUUIDCompletionLine(&b, "__ask_in_dep_uuid_context", item.description)
- }
+ writeFishUUIDCompletionLine(&b, "__ask_in_uuid_context", "Task UUID")
+ writeFishUUIDCompletionLine(&b, "__ask_in_dep_uuid_context", "Task UUID")
return b.String()
}
@@ -189,7 +179,18 @@ func writeFishDepUUIDContextFunction(b *strings.Builder) {
func writeFishTaskUUIDFunction(b *strings.Builder) {
b.WriteString("function __ask_task_uuids\n")
- b.WriteString(" command ask all --json 2>/dev/null | jq -r '.[] | select(.status != \"completed\" and .status != \"deleted\") | .uuid' 2>/dev/null\n")
+ b.WriteString(" set -l now (date +%s)\n")
+ b.WriteString(" if set -q __ask_task_uuid_cache_until; and test $__ask_task_uuid_cache_until -ge $now\n")
+ b.WriteString(" printf '%s\\n' $__ask_task_uuid_cache\n")
+ b.WriteString(" return 0\n")
+ b.WriteString(" end\n")
+ b.WriteString(" set -l uuids (command ask complete-uuids 2>/dev/null)\n")
+ b.WriteString(" if test $status -ne 0\n")
+ b.WriteString(" return 1\n")
+ b.WriteString(" end\n")
+ b.WriteString(" set -g __ask_task_uuid_cache $uuids\n")
+ b.WriteString(" set -g __ask_task_uuid_cache_until (math $now + 2)\n")
+ b.WriteString(" printf '%s\\n' $uuids\n")
b.WriteString("end\n\n")
}