diff --git a/internal/autocomplete/autocomplete.go b/internal/autocomplete/autocomplete.go index 97fe1a8..927e2e2 100644 --- a/internal/autocomplete/autocomplete.go +++ b/internal/autocomplete/autocomplete.go @@ -216,7 +216,9 @@ func getAllPossibleCompletions(completionStyle CompletionStyle, root *cli.Comman completions := make([]ShellCompletion, 0) if len(args) == 0 { for _, child := range root.Commands { - completions = builder.createFromCommand("", child, completions) + if !child.Hidden { + completions = builder.createFromCommand("", child, completions) + } } return CompletionResult{Completions: completions, Behavior: ShellCompletionBehaviorDefault} } diff --git a/internal/autocomplete/autocomplete_test.go b/internal/autocomplete/autocomplete_test.go index 1e262a0..a45b8a3 100644 --- a/internal/autocomplete/autocomplete_test.go +++ b/internal/autocomplete/autocomplete_test.go @@ -17,6 +17,7 @@ func TestGetCompletions_EmptyArgs(t *testing.T) { {Name: "generate", Usage: "Generate SDK"}, {Name: "test", Usage: "Run tests"}, {Name: "build", Usage: "Build project"}, + {Name: "internal", Usage: "Internal command", Hidden: true}, }, } @@ -240,6 +241,18 @@ func TestBashCompletionScriptDoesNotRegisterPlainCompletion(t *testing.T) { assert.False(t, strings.Contains(completionScript, "\ncomplete -F __openai_bash_autocomplete openai")) } +func TestFishCompletionScriptDoesNotWriteDebugLogs(t *testing.T) { + t.Parallel() + + completionScript, err := shellCompletions[CompletionStyleFish](&cli.Command{}, "openai") + if !assert.NoError(t, err) { + return + } + + assert.Contains(t, completionScript, "2>/dev/null") + assert.NotContains(t, completionScript, "fish-debug") +} + func TestGetCompletions_NonBoolFlagValue(t *testing.T) { t.Parallel() diff --git a/internal/autocomplete/shellscripts/fish_autocomplete.fish b/internal/autocomplete/shellscripts/fish_autocomplete.fish index b853057..9952ed0 100644 --- a/internal/autocomplete/shellscripts/fish_autocomplete.fish +++ b/internal/autocomplete/shellscripts/fish_autocomplete.fish @@ -7,7 +7,7 @@ function ____APPNAME___fish_autocomplete set -l cmd $tokens[1] set -l args $tokens[2..-1] - set -l completions (env COMPLETION_STYLE=fish $cmd __complete -- $args $current 2>>/tmp/fish-debug.log) + set -l completions (env COMPLETION_STYLE=fish $cmd __complete -- $args $current 2>/dev/null) set -l exit_code $status # Check for custom file completion patterns @@ -48,4 +48,3 @@ function ____APPNAME___fish_autocomplete end complete -c __APPNAME__ -f -a '(____APPNAME___fish_autocomplete)' -