summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthieu Cneude <Phantas0s@users.noreply.github.com>2024-03-29 08:14:08 +0100
committerGitHub <noreply@github.com>2024-03-29 16:14:08 +0900
commitf625c5aabe0e4cdbfc4a1d5d526a011d3c68c697 (patch)
tree304dcb5d7f6540ef40700fd71b28f99c86ee7b6a /src
parent8a74976c1f02730cfd1b83fc38a57b737a24ac9a (diff)
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 <junegunn.c@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/terminal.go10
1 files changed, 8 insertions, 2 deletions
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)
}