diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-07-06 10:05:25 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-07-06 10:05:25 +0900 |
| commit | 6e3c830cd26194775ad18d565b1d96df8ae945f0 (patch) | |
| tree | 7a944edfca478188bc8f967270fb7e0016651316 /src | |
| parent | d7db7fc13275ed55b6d3d79b18f95d5b83b7a015 (diff) | |
| download | fzf-6e3c830cd26194775ad18d565b1d96df8ae945f0.tar.gz | |
Add 'multi' event triggered on multi-selection changes
Diffstat (limited to 'src')
| -rw-r--r-- | src/options.go | 4 | ||||
| -rw-r--r-- | src/terminal.go | 4 | ||||
| -rw-r--r-- | src/tui/tui.go | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/options.go b/src/options.go index c724f2eb..5cb9f14a 100644 --- a/src/options.go +++ b/src/options.go @@ -1008,6 +1008,8 @@ func parseKeyChordsImpl(str string, message string) (map[tui.Event]string, error add(tui.JumpCancel) case "click-header": add(tui.ClickHeader) + case "multi": + add(tui.Multi) case "alt-enter", "alt-return": chords[tui.CtrlAltKey('m')] = key case "alt-space": @@ -1561,7 +1563,7 @@ func parseActionList(masked string, original string, prevActions []*action, putA appendAction(actCancel) case "clear-query": appendAction(actClearQuery) - case "clear-selection": + case "clear-multi", "clear-selection": appendAction(actClearSelection) case "forward-char": appendAction(actForwardChar) diff --git a/src/terminal.go b/src/terminal.go index 8b5529fe..634d7859 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -5399,6 +5399,7 @@ func (t *Terminal) Loop() error { } previousInput := t.input previousCx := t.cx + previousVersion := t.version t.lastKey = event.KeyName() updatePreviewWindow := func(forcePreview bool) { t.resizeWindows(forcePreview, false) @@ -6656,6 +6657,9 @@ func (t *Terminal) Loop() error { if onEOFs, prs := t.keymap[tui.BackwardEOF.AsEvent()]; beof && prs && !doActions(onEOFs) { continue } + if onMultis, prs := t.keymap[tui.Multi.AsEvent()]; t.version != previousVersion && prs && !doActions(onMultis) { + continue + } } else { jumpEvent := tui.JumpCancel if event.Type == tui.Rune { diff --git a/src/tui/tui.go b/src/tui/tui.go index c899ee78..02b9b093 100644 --- a/src/tui/tui.go +++ b/src/tui/tui.go @@ -132,6 +132,7 @@ const ( Jump JumpCancel ClickHeader + Multi ) func (t EventType) AsEvent() Event { |
