mirror of
https://github.com/junegunn/fzf
synced 2026-07-30 18:11:42 +00:00
Set --border-label as the title of the tmux floating pane (#4853)
The pane sets the options itself before running fzf, so that they are
in place no matter how quickly the command exits, targeted at
$TMUX_PANE; the default target would resolve to the active pane of
the session's current window.
- pane-border-format is set to '#{pane_title}' so that the label is
displayed on the border when pane-border-status is enabled;
pane-border-status itself is a window option in released tmux
versions and is left alone
- When a border style is explicitly specified with --border, a popup
is used instead of a floating pane so that the fzf-drawn border is
the only border shown; give 'border-native' to force a floating pane
- 'none' and 'line' are treated as no border; fzf draws no box for
either, so the label is displayed on the native border
- Remove 'border-fzf' which is now redundant; it was never released
- The title is escaped for select-pane -T which expands format
expressions; a lone ';' is escaped as tmux would treat it as a
command separator
- The label is skipped when ANSI stripping leaves an empty string
- --border-label-pos is ignored
- Fix remain-on-exit set on the original pane instead of the floating
pane
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package fzf
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestEscapeTmuxTitle(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
given string
|
||||
expected string
|
||||
}{
|
||||
{"", ""},
|
||||
{" fzf ", " fzf "},
|
||||
{"#", "##"},
|
||||
{"##", "####"},
|
||||
{" C# notes #S ", " C## notes ##S "},
|
||||
{"100%", "100%"},
|
||||
{";", `\;`},
|
||||
{"; rm", "; rm"},
|
||||
{" ; ", " ; "},
|
||||
} {
|
||||
if actual := escapeTmuxTitle(tc.given); actual != tc.expected {
|
||||
t.Errorf("expected %q, got %q", tc.expected, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestEscapeTmuxTitleSeparator(t *testing.T) {
|
||||
for _, tc := range []struct {
|
||||
given string
|
||||
expected string
|
||||
}{
|
||||
{"#;", "##;"},
|
||||
{";#", ";##"},
|
||||
{";;", ";;"},
|
||||
} {
|
||||
if actual := escapeTmuxTitle(tc.given); actual != tc.expected {
|
||||
t.Errorf("expected %q, got %q", tc.expected, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user