From fa46df7691bbe80b4559d8e0e99b2d1ca1f6f48c Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 12 Oct 2025 02:32:57 -0500 Subject: more housecleaning --- history.go | 7 ++---- makeAutocompleteFiles.bash.go | 51 ----------------------------------------- makeAutocompleteFiles.zsh.go | 53 +++++++++++++++++++++++++++++++++++++++++++ theMagicOfAutocomplete.go | 2 +- 4 files changed, 56 insertions(+), 57 deletions(-) create mode 100644 makeAutocompleteFiles.zsh.go diff --git a/history.go b/history.go index 1a9f044..c0a26c1 100644 --- a/history.go +++ b/history.go @@ -1,6 +1,7 @@ package prep // essentially .bash_history, but in a protobuf and for any shell +// An elegant weapon... for a more civilized age. // stores files ./cache/argv/.pb import ( @@ -14,12 +15,8 @@ import ( timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) -func (pb *Auto) doHandlePB() error { - return pb.readConfigPB() -} - // makes a bash autocomplete file for your command -func (pb *Auto) readConfigPB() error { +func (pb *Auto) getHistoryPB() error { cacheDir, err := os.UserCacheDir() if err != nil { return err diff --git a/makeAutocompleteFiles.bash.go b/makeAutocompleteFiles.bash.go index 0cef75c..43d2bf4 100644 --- a/makeAutocompleteFiles.bash.go +++ b/makeAutocompleteFiles.bash.go @@ -103,54 +103,3 @@ func getParentProcessName() string { // The file content has a trailing newline, so trim it. return strings.TrimSpace(string(content)) } - -/* - - 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 "$@" - -*/ 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 "$@" + +*/ diff --git a/theMagicOfAutocomplete.go b/theMagicOfAutocomplete.go index e4407a3..e107319 100644 --- a/theMagicOfAutocomplete.go +++ b/theMagicOfAutocomplete.go @@ -26,7 +26,7 @@ func Autocomplete(dest any) *Auto { pb.PrintDebug() } - pb.doHandlePB() // read in the history protobuf file + pb.getHistoryPB() // read in the history protobuf file // turn on debugging if duration < 200 milliseconds dur := pb.Duration.AsDuration() -- cgit v1.2.3