mirror of
https://github.com/spf13/cobra
synced 2024-12-26 06:17:05 +00:00
feat: add getters for flag completions (#1943)
This commit is contained in:
parent
0c72800b8d
commit
bd4d1655f6
1 changed files with 19 additions and 0 deletions
|
@ -145,6 +145,25 @@ func (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd *Comman
|
|||
return nil
|
||||
}
|
||||
|
||||
// GetFlagCompletion returns the completion function for the given flag, if available.
|
||||
func GetFlagCompletion(flag *pflag.Flag) (func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective), bool) {
|
||||
flagCompletionMutex.RLock()
|
||||
defer flagCompletionMutex.RUnlock()
|
||||
|
||||
completionFunc, exists := flagCompletionFunctions[flag]
|
||||
return completionFunc, exists
|
||||
}
|
||||
|
||||
// GetFlagCompletionByName returns the completion function for the given flag in the command by name, if available.
|
||||
func (c *Command) GetFlagCompletionByName(flagName string) (func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective), bool) {
|
||||
flag := c.Flags().Lookup(flagName)
|
||||
if flag == nil {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
return GetFlagCompletion(flag)
|
||||
}
|
||||
|
||||
// Returns a string listing the different directive enabled in the specified parameter
|
||||
func (d ShellCompDirective) string() string {
|
||||
var directives []string
|
||||
|
|
Loading…
Reference in a new issue