summaryrefslogtreecommitdiff
path: root/src/core.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-05-30 20:33:21 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-05-30 20:33:21 +0900
commit54fd92b7ddb22647170110790391d39a1065a863 (patch)
treeeec53682d699d1417f73b2205ecce0fe61af0970 /src/core.go
parent835906d392aa6a3c8596d2c81414f0d73eaf99aa (diff)
downloadfzf-54fd92b7ddb22647170110790391d39a1065a863.tar.gz
--no-color: Keep ANSI attributes in the list
Example: echo -e "\x1b[33;3mfoo \x1b[34;4mbar\x1b[m baz" | fzf --ansi --no-color
Diffstat (limited to 'src/core.go')
-rw-r--r--src/core.go21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/core.go b/src/core.go
index 961d0d37..dffc4f36 100644
--- a/src/core.go
+++ b/src/core.go
@@ -74,20 +74,11 @@ func Run(opts *Options) (int, error) {
var lineAnsiState, prevLineAnsiState *ansiState
if opts.Ansi {
- if opts.Theme.Colored {
- ansiProcessor = func(data []byte) (util.Chars, *[]ansiOffset) {
- prevLineAnsiState = lineAnsiState
- trimmed, offsets, newState := extractColor(byteString(data), lineAnsiState, nil)
- lineAnsiState = newState
- return util.ToChars(stringBytes(trimmed)), offsets
- }
- } else {
- // When color is disabled but ansi option is given,
- // we simply strip out ANSI codes from the input
- ansiProcessor = func(data []byte) (util.Chars, *[]ansiOffset) {
- trimmed, _, _ := extractColor(byteString(data), nil, nil)
- return util.ToChars(stringBytes(trimmed)), nil
- }
+ ansiProcessor = func(data []byte) (util.Chars, *[]ansiOffset) {
+ prevLineAnsiState = lineAnsiState
+ trimmed, offsets, newState := extractColor(byteString(data), lineAnsiState, nil)
+ lineAnsiState = newState
+ return util.ToChars(stringBytes(trimmed)), offsets
}
}
@@ -112,7 +103,7 @@ func Run(opts *Options) (int, error) {
nthTransformer := opts.WithNth(opts.Delimiter)
chunkList = NewChunkList(cache, func(item *Item, data []byte) bool {
tokens := Tokenize(byteString(data), opts.Delimiter)
- if opts.Ansi && opts.Theme.Colored && len(tokens) > 1 {
+ if opts.Ansi && len(tokens) > 1 {
var ansiState *ansiState
if prevLineAnsiState != nil {
ansiStateDup := *prevLineAnsiState