diff --git a/src/core.go b/src/core.go index 404af12a..42add205 100644 --- a/src/core.go +++ b/src/core.go @@ -135,6 +135,7 @@ func Run(opts *Options) (int, error) { return false } item.text, item.colors = ansiProcessor(stringBytes(transformed)) + item.text.TrimTrailingWhitespaces() item.text.Index = itemIndex item.origText = &data itemIndex++ diff --git a/src/options.go b/src/options.go index a526d3b7..8a9e33ff 100644 --- a/src/options.go +++ b/src/options.go @@ -778,7 +778,7 @@ func nthTransformer(str string) (func(Delimiter) func([]Token, int32) string, er } return func(Delimiter) func([]Token, int32) string { return func(tokens []Token, index int32) string { - return strings.TrimRightFunc(JoinTokens(Transform(tokens, nth)), unicode.IsSpace) + return JoinTokens(Transform(tokens, nth)) } }, nil } diff --git a/src/util/chars.go b/src/util/chars.go index adde02a6..dd037caa 100644 --- a/src/util/chars.go +++ b/src/util/chars.go @@ -184,6 +184,11 @@ func (chars *Chars) TrailingWhitespaces() int { return whitespaces } +func (chars *Chars) TrimTrailingWhitespaces() { + whitespaces := chars.TrailingWhitespaces() + chars.slice = chars.slice[0 : len(chars.slice)-whitespaces] +} + func (chars *Chars) TrimSuffix(runes []rune) { lastIdx := len(chars.slice) firstIdx := lastIdx - len(runes)