Revert "Refactor fishAddFileFlag for better flexibility [#1156]"
This reverts commit fcce511478
.
This commit is contained in:
parent
c3263d495e
commit
5c8d915be7
24
fish.go
24
fish.go
@ -4,7 +4,6 @@ import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"reflect"
|
||||
"strings"
|
||||
"text/template"
|
||||
)
|
||||
@ -159,17 +158,24 @@ func (a *App) prepareFishFlags(flags []Flag, previousCommands []string) []string
|
||||
}
|
||||
|
||||
func fishAddFileFlag(flag Flag, completion *strings.Builder) {
|
||||
val := reflect.ValueOf(flag)
|
||||
// if flag is a non-nil pointer to a struct...
|
||||
if val.Kind() != reflect.Invalid && val.Elem().Kind() == reflect.Struct {
|
||||
field := val.Elem().FieldByName("TakesFile")
|
||||
// if flag's underlying type has a bool field called TakesFile, whose value is true...
|
||||
if field.Kind() == reflect.Bool && field.Bool() {
|
||||
// don't append '-f'
|
||||
switch f := flag.(type) {
|
||||
case *GenericFlag:
|
||||
if f.TakesFile {
|
||||
return
|
||||
}
|
||||
case *StringFlag:
|
||||
if f.TakesFile {
|
||||
return
|
||||
}
|
||||
case *StringSliceFlag:
|
||||
if f.TakesFile {
|
||||
return
|
||||
}
|
||||
case *PathFlag:
|
||||
if f.TakesFile {
|
||||
return
|
||||
}
|
||||
}
|
||||
// append '-f', indicating that arguments to this flag are *not* meant to be file paths
|
||||
completion.WriteString(" -f")
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user