mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-17 07:43:39 -05:00
with-nth: Do not trim trailing whitespaces with background colors
Example: echo -en ' \e[48;5;232mhello\e[48;5;147m ' | fzf --ansi --with-nth 1
This commit is contained in:
12
src/core.go
12
src/core.go
@@ -126,7 +126,17 @@ func Run(opts *Options) (int, error) {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
item.text, item.colors = ansiProcessor(stringBytes(transformed))
|
item.text, item.colors = ansiProcessor(stringBytes(transformed))
|
||||||
item.text.TrimTrailingWhitespaces()
|
|
||||||
|
// We should not trim trailing whitespaces with background colors
|
||||||
|
var maxColorOffset int32
|
||||||
|
if item.colors != nil {
|
||||||
|
for _, ansi := range *item.colors {
|
||||||
|
if ansi.color.bg >= 0 {
|
||||||
|
maxColorOffset = util.Max32(maxColorOffset, ansi.offset[1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.text.TrimTrailingWhitespaces(int(maxColorOffset))
|
||||||
item.text.Index = itemIndex
|
item.text.Index = itemIndex
|
||||||
item.origText = &data
|
item.origText = &data
|
||||||
itemIndex++
|
itemIndex++
|
||||||
|
|||||||
@@ -184,9 +184,10 @@ func (chars *Chars) TrailingWhitespaces() int {
|
|||||||
return whitespaces
|
return whitespaces
|
||||||
}
|
}
|
||||||
|
|
||||||
func (chars *Chars) TrimTrailingWhitespaces() {
|
func (chars *Chars) TrimTrailingWhitespaces(maxIndex int) {
|
||||||
whitespaces := chars.TrailingWhitespaces()
|
whitespaces := chars.TrailingWhitespaces()
|
||||||
chars.slice = chars.slice[0 : len(chars.slice)-whitespaces]
|
end := len(chars.slice) - whitespaces
|
||||||
|
chars.slice = chars.slice[0:Max(end, maxIndex)]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (chars *Chars) TrimSuffix(runes []rune) {
|
func (chars *Chars) TrimSuffix(runes []rune) {
|
||||||
|
|||||||
Reference in New Issue
Block a user