diff --git a/filter/command.go b/filter/command.go index 8a73e41..c4581c6 100644 --- a/filter/command.go +++ b/filter/command.go @@ -10,8 +10,10 @@ import ( "github.com/charmbracelet/bubbles/textinput" "github.com/charmbracelet/bubbles/viewport" tea "github.com/charmbracelet/bubbletea" + "github.com/mattn/go-isatty" "github.com/sahilm/fuzzy" + "github.com/charmbracelet/gum/ansi" "github.com/charmbracelet/gum/internal/exit" "github.com/charmbracelet/gum/internal/files" "github.com/charmbracelet/gum/internal/stdin" @@ -98,15 +100,25 @@ func (o Options) Run() error { return exit.ErrAborted } + isTTY := isatty.IsTerminal(os.Stdout.Fd()) + // allSelections contains values only if limit is greater // than 1 or if flag --no-limit is passed, hence there is // no need to further checks if len(m.selected) > 0 { for k := range m.selected { - fmt.Println(k) + if isTTY { + fmt.Println(k) + } else { + fmt.Println(ansi.Strip(k)) + } } } else if len(m.matches) > m.cursor && m.cursor >= 0 { - fmt.Println(m.matches[m.cursor].Str) + if isTTY { + fmt.Println(m.matches[m.cursor].Str) + } else { + fmt.Println(ansi.Strip(m.matches[m.cursor].Str)) + } } if !o.Strict && len(m.textinput.Value()) != 0 && len(m.matches) == 0 {