From f625c5aabe0e4cdbfc4a1d5d526a011d3c68c697 Mon Sep 17 00:00:00 2001 From: Matthieu Cneude Date: Fri, 29 Mar 2024 08:14:08 +0100 Subject: Add environment variables: FZF_{BORDER,PREVIEW}_LABEL (#3693) The environment variable get the value of the preview label, even if it has been updated with an action. It can be useful to track the label of the preview and be able to switch between previews using only one binding. Co-authored-by: Junegunn Choi --- src/terminal.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/terminal.go b/src/terminal.go index 726cb498..ef7ba9dd 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -852,6 +852,8 @@ func (t *Terminal) environ() []string { env = append(env, "FZF_QUERY="+string(t.input)) env = append(env, "FZF_ACTION="+t.lastAction.Name()) env = append(env, "FZF_PROMPT="+string(t.promptString)) + env = append(env, "FZF_PREVIEW_LABEL="+t.previewLabelOpts.label) + env = append(env, "FZF_BORDER_LABEL="+t.borderLabelOpts.label) env = append(env, fmt.Sprintf("FZF_TOTAL_COUNT=%d", t.count)) env = append(env, fmt.Sprintf("FZF_MATCH_COUNT=%d", t.merger.Length())) env = append(env, fmt.Sprintf("FZF_SELECT_COUNT=%d", len(t.selected))) @@ -3476,11 +3478,13 @@ func (t *Terminal) Loop() { req(reqHeader) } case actChangeBorderLabel: + t.borderLabelOpts.label = a.a if t.border != nil { t.borderLabel, t.borderLabelLen = t.ansiLabelPrinter(a.a, &tui.ColBorderLabel, false) req(reqRedrawBorderLabel) } case actChangePreviewLabel: + t.previewLabelOpts.label = a.a if t.pborder != nil { t.previewLabel, t.previewLabelLen = t.ansiLabelPrinter(a.a, &tui.ColPreviewLabel, false) req(reqRedrawPreviewLabel) @@ -3490,14 +3494,16 @@ func (t *Terminal) Loop() { actions := parseSingleActionList(strings.Trim(body, "\r\n"), func(message string) {}) return doActions(actions) case actTransformBorderLabel: + label := t.executeCommand(a.a, false, true, true, true) + t.borderLabelOpts.label = label if t.border != nil { - label := t.executeCommand(a.a, false, true, true, true) t.borderLabel, t.borderLabelLen = t.ansiLabelPrinter(label, &tui.ColBorderLabel, false) req(reqRedrawBorderLabel) } case actTransformPreviewLabel: + label := t.executeCommand(a.a, false, true, true, true) + t.previewLabelOpts.label = label if t.pborder != nil { - label := t.executeCommand(a.a, false, true, true, true) t.previewLabel, t.previewLabelLen = t.ansiLabelPrinter(label, &tui.ColPreviewLabel, false) req(reqRedrawPreviewLabel) } -- cgit v1.2.3