summaryrefslogtreecommitdiff
path: root/src/pattern.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-01-13 12:45:01 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-01-13 12:45:01 +0900
commitba0935c71f5507958056201ddad2fc48674a586d (patch)
tree1fd1e98765cb4ef61dfb5d83de2876bba79c9377 /src/pattern.go
parentd83eb2800a09d86e17c0339d86bd1f22f68164a8 (diff)
downloadfzf-ba0935c71f5507958056201ddad2fc48674a586d.tar.gz
Fix change-nth
* Proper clean-up of caches * Force rerender list after the action
Diffstat (limited to 'src/pattern.go')
-rw-r--r--src/pattern.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/pattern.go b/src/pattern.go
index 11bed5f9..9a386280 100644
--- a/src/pattern.go
+++ b/src/pattern.go
@@ -393,12 +393,24 @@ func (p *Pattern) extendedMatch(item *Item, withPos bool, slab *util.Slab) ([]Of
func (p *Pattern) transformInput(item *Item) []Token {
if item.transformed != nil {
- return *item.transformed
+ transformed := *item.transformed
+ if len(transformed.nth) == len(p.nth) {
+ same := true
+ for idx, rangeItem := range transformed.nth {
+ if rangeItem != p.nth[idx] {
+ same = false
+ break
+ }
+ }
+ if same {
+ return transformed.tokens
+ }
+ }
}
tokens := Tokenize(item.text.ToString(), p.delimiter)
ret := Transform(tokens, p.nth)
- item.transformed = &ret
+ item.transformed = &transformed{p.nth, ret}
return ret
}