From 17f2aa1a1f2ea363f8b71285e2c3e9e92e8f3854 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 14 Mar 2026 22:10:55 +0900 Subject: [PATCH] Reorder info line: N/M (X) (S%) +S +T* Flags that appear/disappear are now at the end, so the multi-select indicator stays in a fixed position and doesn't flicker. --- src/terminal.go | 20 ++++++++++---------- test/test_core.rb | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/terminal.go b/src/terminal.go index f9e6e4bb..8ecdcd41 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -3030,6 +3030,16 @@ func (t *Terminal) printInfoImpl() { found := t.resultMerger.Length() total := max(found, t.count) output := fmt.Sprintf("%d/%d", found, total) + if t.multi > 0 { + if t.multi == maxMulti { + output += fmt.Sprintf(" (%d)", len(t.selected)) + } else { + output += fmt.Sprintf(" (%d/%d)", len(t.selected), t.multi) + } + } + if t.progress > 0 && t.progress < 100 { + output += fmt.Sprintf(" (%d%%)", t.progress) + } if t.toggleSort { if t.sort { output += " +S" @@ -3050,16 +3060,6 @@ func (t *Terminal) printInfoImpl() { output += " +t" } } - if t.multi > 0 { - if t.multi == maxMulti { - output += fmt.Sprintf(" (%d)", len(t.selected)) - } else { - output += fmt.Sprintf(" (%d/%d)", len(t.selected), t.multi) - } - } - if t.progress > 0 && t.progress < 100 { - output += fmt.Sprintf(" (%d%%)", t.progress) - } if t.failed != nil && t.count == 0 { output = fmt.Sprintf("[Command failed: %s]", *t.failed) } diff --git a/test/test_core.rb b/test/test_core.rb index 7f5090d1..a174ab40 100644 --- a/test/test_core.rb +++ b/test/test_core.rb @@ -404,11 +404,11 @@ class TestCore < TestInteractive tmux.send_keys "seq 1 111 | #{fzf("-m +s --tac #{opt} -q11")}", :Enter tmux.until { |lines| assert_equal '> 111', lines[-3] } tmux.send_keys :Tab - tmux.until { |lines| assert_equal ' 4/111 -S (1)', lines[-2] } + tmux.until { |lines| assert_equal ' 4/111 (1) -S', lines[-2] } tmux.send_keys 'C-R' tmux.until { |lines| assert_equal '> 11', lines[-3] } tmux.send_keys :Tab - tmux.until { |lines| assert_equal ' 4/111 +S (2)', lines[-2] } + tmux.until { |lines| assert_equal ' 4/111 (2) +S', lines[-2] } tmux.send_keys :Enter assert_equal %w[111 11], fzf_output_lines end