From 3f5b3d06a4eaf032709bf9f1729dbf354667bf73 Mon Sep 17 00:00:00 2001 From: Jahvon Dockery Date: Thu, 7 Aug 2025 15:12:30 -0400 Subject: [PATCH 1/2] fix: cli completions should filter by verb --- cmd/internal/browse.go | 6 +++++- cmd/internal/exec.go | 6 +++++- cmd/internal/workspace.go | 5 ++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/internal/browse.go b/cmd/internal/browse.go index 4e02365a..b51176b8 100644 --- a/cmd/internal/browse.go +++ b/cmd/internal/browse.go @@ -33,13 +33,17 @@ func RegisterBrowseCmd(ctx *context.Context, rootCmd *cobra.Command) { ), Args: cobra.MaximumNArgs(2), ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + verbStr := cmd.CalledAs() + verb := executable.Verb(verbStr) execList, err := ctx.ExecutableCache.GetExecutableList() if err != nil { return nil, cobra.ShellCompDirectiveError } execIDs := make([]string, 0, len(execList)) for _, e := range execList { - execIDs = append(execIDs, e.ID()) + if e.Verb.Equals(verb) { + execIDs = append(execIDs, e.ID()) + } } return execIDs, cobra.ShellCompDirectiveNoFileComp }, diff --git a/cmd/internal/exec.go b/cmd/internal/exec.go index 34450e44..7cc5a7d5 100644 --- a/cmd/internal/exec.go +++ b/cmd/internal/exec.go @@ -45,13 +45,17 @@ func RegisterExecCmd(ctx *context.Context, rootCmd *cobra.Command) { ), Args: cobra.ArbitraryArgs, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + verbStr := cmd.CalledAs() + verb := executable.Verb(verbStr) execList, err := ctx.ExecutableCache.GetExecutableList() if err != nil { return nil, cobra.ShellCompDirectiveError } execIDs := make([]string, 0, len(execList)) for _, e := range execList { - execIDs = append(execIDs, e.ID()) + if e.Verb.Equals(verb) { + execIDs = append(execIDs, e.ID()) + } } return execIDs, cobra.ShellCompDirectiveNoFileComp }, diff --git a/cmd/internal/workspace.go b/cmd/internal/workspace.go index ea3c47ad..8f8782e8 100644 --- a/cmd/internal/workspace.go +++ b/cmd/internal/workspace.go @@ -120,7 +120,10 @@ func registerSwitchWorkspaceCmd(ctx *context.Context, setCmd *cobra.Command) { Aliases: []string{"set", "use"}, Short: "Switch the current workspace.", Args: cobra.ExactArgs(1), - Run: func(cmd *cobra.Command, args []string) { switchWorkspaceFunc(ctx, cmd, args) }, + ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]cobra.Completion, cobra.ShellCompDirective) { + return maps.Keys(ctx.Config.Workspaces), cobra.ShellCompDirectiveNoFileComp + }, + Run: func(cmd *cobra.Command, args []string) { switchWorkspaceFunc(ctx, cmd, args) }, } RegisterFlag(ctx, workspaceCmd, *flags.FixedWsModeFlag) setCmd.AddCommand(workspaceCmd) From e3b18fbea50468796b6d7aa04d71d28c634fe207 Mon Sep 17 00:00:00 2001 From: Jahvon Dockery Date: Thu, 7 Aug 2025 15:17:06 -0400 Subject: [PATCH 2/2] linting --- cmd/internal/workspace.go | 2 +- tests/utils/builder/exec.go | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/cmd/internal/workspace.go b/cmd/internal/workspace.go index 8f8782e8..b6c66702 100644 --- a/cmd/internal/workspace.go +++ b/cmd/internal/workspace.go @@ -120,7 +120,7 @@ func registerSwitchWorkspaceCmd(ctx *context.Context, setCmd *cobra.Command) { Aliases: []string{"set", "use"}, Short: "Switch the current workspace.", Args: cobra.ExactArgs(1), - ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]cobra.Completion, cobra.ShellCompDirective) { + ValidArgsFunction: func(_ *cobra.Command, _ []string, _ string) ([]cobra.Completion, cobra.ShellCompDirective) { return maps.Keys(ctx.Config.Workspaces), cobra.ShellCompDirectiveNoFileComp }, Run: func(cmd *cobra.Command, args []string) { switchWorkspaceFunc(ctx, cmd, args) }, diff --git a/tests/utils/builder/exec.go b/tests/utils/builder/exec.go index 16f5191e..a6c9d095 100644 --- a/tests/utils/builder/exec.go +++ b/tests/utils/builder/exec.go @@ -1,4 +1,3 @@ -//nolint:lll package builder import (