diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-01-13 12:45:01 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-01-13 12:45:01 +0900 |
| commit | ba0935c71f5507958056201ddad2fc48674a586d (patch) | |
| tree | 1fd1e98765cb4ef61dfb5d83de2876bba79c9377 /src/pattern.go | |
| parent | d83eb2800a09d86e17c0339d86bd1f22f68164a8 (diff) | |
| download | fzf-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.go | 16 |
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 } |
