From 8585969d6d6a88161089928bcfc9462c84eca028 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 29 Sep 2025 00:04:57 +0900 Subject: [PATCH] Refactor action implementation --- src/terminal.go | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/terminal.go b/src/terminal.go index 8fda1d54..8508efe2 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -6088,32 +6088,22 @@ func (t *Terminal) Loop() error { t.vmove(1, true) req(reqList) } - case actDown, actDownMatch: - if t.raw && a.t == actDownMatch { - if t.resultMerger.Length() > 0 { - prevCy := t.cy - for t.vmove(-1, true) && !t.isCurrentItemMatch() { - } - if !t.isCurrentItemMatch() { - t.vset(prevCy) - } - } - } else { - t.vmove(-1, true) + case actDown, actDownMatch, actUp, actUpMatch: + dir := -1 + if a.t == actUp || a.t == actUpMatch { + dir = 1 } - req(reqList) - case actUp, actUpMatch: - if t.raw && a.t == actUpMatch { + if t.raw && (a.t == actDownMatch || a.t == actUpMatch) { if t.resultMerger.Length() > 0 { prevCy := t.cy - for t.vmove(1, true) && !t.isCurrentItemMatch() { + for t.vmove(dir, true) && !t.isCurrentItemMatch() { } if !t.isCurrentItemMatch() { t.vset(prevCy) } } } else { - t.vmove(1, true) + t.vmove(dir, true) } req(reqList) case actToggleRaw: