From fa46df7691bbe80b4559d8e0e99b2d1ca1f6f48c Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 12 Oct 2025 02:32:57 -0500 Subject: more housecleaning --- makeAutocompleteFiles.zsh.go | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 makeAutocompleteFiles.zsh.go (limited to 'makeAutocompleteFiles.zsh.go') 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 "$@" + +*/ -- cgit v1.2.3