allow index sub-command completion, finally
This commit is contained in:
parent
adf861e7b7
commit
62aefa0e3b
|
@ -95,6 +95,12 @@ func (args *Arguments) CompletionFunction(cc *cobra.Command, provided []string,
|
||||||
values := []string{}
|
values := []string{}
|
||||||
directive := cobra.ShellCompDirectiveError
|
directive := cobra.ShellCompDirectiveError
|
||||||
|
|
||||||
|
if cc.HasAvailableSubCommands() && len(provided) < 1 {
|
||||||
|
// if this is an "index" command and user is providing first argument
|
||||||
|
// allow completions instead of erroring by default
|
||||||
|
directive = cobra.ShellCompDirectiveDefault
|
||||||
|
}
|
||||||
|
|
||||||
if expectedArgLen > 0 {
|
if expectedArgLen > 0 {
|
||||||
argsCompleted := len(provided)
|
argsCompleted := len(provided)
|
||||||
lastArg := (*args)[len(*args)-1]
|
lastArg := (*args)[len(*args)-1]
|
||||||
|
|
|
@ -312,6 +312,7 @@ func (vs *ValueSource) UnmarshalYAML(node *yaml.Node) error {
|
||||||
|
|
||||||
var customCompleters = map[string]CompletionFunc{}
|
var customCompleters = map[string]CompletionFunc{}
|
||||||
|
|
||||||
|
// Registers a completion function for the given command.ValueType key name
|
||||||
func RegisterValueSource(key string, completion CompletionFunc) {
|
func RegisterValueSource(key string, completion CompletionFunc) {
|
||||||
customCompleters[key] = completion
|
customCompleters[key] = completion
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue