Capture completion hints in command metadata
This commit is contained in:
28
command.go
28
command.go
@@ -98,6 +98,8 @@ type FlagMeta struct {
|
||||
Usage string
|
||||
// Required reports whether execution requires the flag to be supplied.
|
||||
Required bool
|
||||
// Completion describes optional value suggestions.
|
||||
Completion CompletionHint
|
||||
}
|
||||
|
||||
// ArgumentMeta describes a positional command argument. Its name and usage are
|
||||
@@ -107,6 +109,8 @@ type ArgumentMeta struct {
|
||||
Name string
|
||||
// Usage briefly describes the argument.
|
||||
Usage string
|
||||
// Completion describes optional value suggestions.
|
||||
Completion CompletionHint
|
||||
}
|
||||
|
||||
// Flag represents a typed binding for a command flag. Copies retain binding
|
||||
@@ -202,13 +206,14 @@ func (c typedCommand[I]) bridgeFlags() []commandmeta.Flag {
|
||||
for index, flag := range c.spec.Flags {
|
||||
binding := flag.binding
|
||||
flags[index] = commandmeta.Flag{
|
||||
Name: binding.meta.Name,
|
||||
Short: binding.meta.Short,
|
||||
Usage: binding.meta.Usage,
|
||||
Default: binding.defaultText,
|
||||
Boolean: binding.boolean,
|
||||
Repeated: binding.repeated,
|
||||
Required: binding.meta.Required,
|
||||
Name: binding.meta.Name,
|
||||
Short: binding.meta.Short,
|
||||
Usage: binding.meta.Usage,
|
||||
Default: binding.defaultText,
|
||||
Boolean: binding.boolean,
|
||||
Repeated: binding.repeated,
|
||||
Required: binding.meta.Required,
|
||||
Completion: bridgeCompletion(binding.meta.Completion),
|
||||
}
|
||||
}
|
||||
return flags
|
||||
@@ -219,10 +224,11 @@ func (c typedCommand[I]) bridgeArguments() []commandmeta.Argument {
|
||||
for index, argument := range c.spec.Arguments {
|
||||
binding := argument.binding
|
||||
arguments[index] = commandmeta.Argument{
|
||||
Name: binding.meta.Name,
|
||||
Usage: binding.meta.Usage,
|
||||
Min: binding.min,
|
||||
Max: binding.max,
|
||||
Name: binding.meta.Name,
|
||||
Usage: binding.meta.Usage,
|
||||
Min: binding.min,
|
||||
Max: binding.max,
|
||||
Completion: bridgeCompletion(binding.meta.Completion),
|
||||
}
|
||||
}
|
||||
return arguments
|
||||
|
||||
Reference in New Issue
Block a user