123456789101112131415161718192021222324252627282930313233 |
- package kingpin
- // HintAction is a function type who is expected to return a slice of possible
- // command line arguments.
- type HintAction func() []string
- type completionsMixin struct {
- hintActions []HintAction
- builtinHintActions []HintAction
- }
- func (a *completionsMixin) addHintAction(action HintAction) {
- a.hintActions = append(a.hintActions, action)
- }
- // Allow adding of HintActions which are added internally, ie, EnumVar
- func (a *completionsMixin) addHintActionBuiltin(action HintAction) {
- a.builtinHintActions = append(a.builtinHintActions, action)
- }
- func (a *completionsMixin) resolveCompletions() []string {
- var hints []string
- options := a.builtinHintActions
- if len(a.hintActions) > 0 {
- // User specified their own hintActions. Use those instead.
- options = a.hintActions
- }
- for _, hintAction := range options {
- hints = append(hints, hintAction()...)
- }
- return hints
- }
|