diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-26 22:28:52 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-26 22:28:52 +0200 |
| commit | c514262eb8bfd4042719efd28335f0e1ad9a4f48 (patch) | |
| tree | f6cea304240a88e41a99ab33280594858b28af8d /assets | |
| parent | 5603667541240cc7eaf3b8cd2352bf12c1bdd8f2 (diff) | |
ask: speed up fish UUID completion
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/ask.fish | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/assets/ask.fish b/assets/ask.fish index 68fcf9f..46cb87d 100644 --- a/assets/ask.fish +++ b/assets/ask.fish @@ -92,7 +92,18 @@ function __ask_in_dep_uuid_context end function __ask_task_uuids - command ask all --json 2>/dev/null | jq -r '.[] | select(.status != "completed" and .status != "deleted") | .uuid' 2>/dev/null + set -l now (date +%s) + if set -q __ask_task_uuid_cache_until; and test $__ask_task_uuid_cache_until -ge $now + printf '%s\n' $__ask_task_uuid_cache + return 0 + end + set -l uuids (command ask complete-uuids 2>/dev/null) + if test $status -ne 0 + return 1 + end + set -g __ask_task_uuid_cache $uuids + set -g __ask_task_uuid_cache_until (math $now + 2) + printf '%s\n' $uuids end complete -c ask -f @@ -117,16 +128,5 @@ complete -c ask -n '__ask_needs_root_completion' -a 'help' -d 'Show help' complete -c ask -n '__ask_in_dep_context' -a 'add' -d 'Add a dependency' complete -c ask -n '__ask_in_dep_context' -a 'rm' -d 'Remove a dependency' complete -c ask -n '__ask_in_dep_context' -a 'list' -d 'List dependencies' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Show task details' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Add an annotation' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Start a task' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Stop a task' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Mark a task complete' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Set priority' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Add or remove a tag' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Modify task fields' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Remove an annotation' -complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Delete a task' -complete -c ask -n '__ask_in_dep_uuid_context' -a '(__ask_task_uuids)' -d 'Add a dependency' -complete -c ask -n '__ask_in_dep_uuid_context' -a '(__ask_task_uuids)' -d 'Remove a dependency' -complete -c ask -n '__ask_in_dep_uuid_context' -a '(__ask_task_uuids)' -d 'List dependencies' +complete -c ask -n '__ask_in_uuid_context' -a '(__ask_task_uuids)' -d 'Task UUID' +complete -c ask -n '__ask_in_dep_uuid_context' -a '(__ask_task_uuids)' -d 'Task UUID' |
