summaryrefslogtreecommitdiff
path: root/makeAutocompleteFiles.zsh.go
diff options
context:
space:
mode:
Diffstat (limited to 'makeAutocompleteFiles.zsh.go')
-rw-r--r--makeAutocompleteFiles.zsh.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/makeAutocompleteFiles.zsh.go b/makeAutocompleteFiles.zsh.go
new file mode 100644
index 0000000..b48ca48
--- /dev/null
+++ b/makeAutocompleteFiles.zsh.go
@@ -0,0 +1,53 @@
+package prep
+
+// makes the autocomplete files for 'zsh'
+
+/*
+ This script will be placed in a directory in your $fpath (e.g., ~/.zsh/completions/_my-app).
+
+#compdef my-app
+
+# This function will be called by Zsh to get the completions.
+_my_app_completions() {
+ local -a suggestions
+
+ # Here is the key part:
+ # We execute our Go program with the hidden flag and capture its output.
+ 9 # The `(f)` flag splits the output by line into an array.
+ 10 suggestions=( ${(f)"$(my-app --_generate_completions)"} )
+ 11
+ 12 # Pass the suggestions to the Zsh completion engine.
+ 13 _describe 'command' suggestions
+ 14 }
+ 15
+ 16 # Tell Zsh to call our function when completing for my-app
+ 17 _my_app_completions "$@"
+*/
+
+// zsh:
+/*
+#compdef forge
+
+# Zsh completion function for the 'forge' command.
+
+_forge_completions() {
+ local -a words
+ local -i CURRENT
+
+ # Zsh's equivalent of Bash's COMP_WORDS and COMP_CWORD
+ words=("${(@)words}")
+ CURRENT=$CURRENT
+
+ # Generate the completion suggestions by calling the forge command.
+ # The output is split into an array.
+ local -a suggestions
+ suggestions=("${(@f)$(forge --auto-complete "'${words[CURRENT]}'" "${words[@]}")}")
+
+ # Pass the suggestions to the Zsh completion system.
+ _describe 'completions' suggestions
+}
+
+# Register the function to be called for the 'forge' command.
+_forge_completions "$@"
+
+*/