package commonflags import ( "slices" "github.com/spf13/cobra" "github.com/spf13/pflag" ) func AutoCompleteFlags(cmd *cobra.Command, _ []string, _ string) ([]string, cobra.ShellCompDirective) { var availableFlags []string cmd.Flags().VisitAll(func(f *pflag.Flag) { availableFlags = append(availableFlags, f.Name) }) var usedFlags []string cmd.Flags().Visit(func(f *pflag.Flag) { usedFlags = append(usedFlags, f.Name) }) unusedFlags := slices.DeleteFunc(availableFlags, func(name string) bool { return slices.Contains(usedFlags, name) }) return unusedFlags, cobra.ShellCompDirectiveDefault }