From d210660ce8302fa54836f8682db213c1fac877ba Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 31 Dec 2023 16:01:00 +0900 Subject: [PATCH] Add actions: show-header and hide-header --- CHANGELOG.md | 1 + man/man1/fzf.1 | 2 ++ src/actiontype_string.go | 6 ++++-- src/options.go | 4 ++++ src/terminal.go | 8 ++++++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index baee404..76ea0bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,7 @@ CHANGELOG ```sh export FZF_CTRL_R_OPTS='--bind "enter:become:if [[ -n {} ]]; then echo {}; else echo {q}; fi"' ``` +- Added `show-header` and `hide-header` actions - Bug fixes 0.44.1 diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index 9b5e1e3..38b0862 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -1183,6 +1183,7 @@ A key or an event can be bound to one or more of the following actions. \fBpage-up\fR \fIpgup\fR \fBhalf-page-down\fR \fBhalf-page-up\fR + \fBhide-header\fR \fBhide-preview\fR \fBoffset-down\fR (similar to CTRL-E of Vim) \fBoffset-up\fR (similar to CTRL-Y of Vim) @@ -1208,6 +1209,7 @@ A key or an event can be bound to one or more of the following actions. \fBreplace-query\fR (replace query string with the current selection) \fBselect\fR \fBselect-all\fR (select all matches) + \fBshow-header\fR \fBshow-preview\fR \fBtoggle\fR (\fIright-click\fR) \fBtoggle-all\fR (toggle all matches) diff --git a/src/actiontype_string.go b/src/actiontype_string.go index 90fa909..4ab2761 100644 --- a/src/actiontype_string.go +++ b/src/actiontype_string.go @@ -113,11 +113,13 @@ func _() { _ = x[actRebind-102] _ = x[actBecome-103] _ = x[actResponse-104] + _ = x[actShowHeader-105] + _ = x[actHideHeader-106] } -const _actionType_name = "actIgnoreactStartactClickactInvalidactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactCancelactChangeBorderLabelactChangeHeaderactChangePreviewLabelactChangePromptactChangeQueryactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactForwardCharactForwardWordactKillLineactKillWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleHeaderactTrackactDownactUpactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformHeaderactTransformPreviewLabelactTransformPromptactTransformQueryactPreviewactChangePreviewactChangePreviewWindowactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactBecomeactResponse" +const _actionType_name = "actIgnoreactStartactClickactInvalidactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactCancelactChangeBorderLabelactChangeHeaderactChangePreviewLabelactChangePromptactChangeQueryactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactForwardCharactForwardWordactKillLineactKillWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleHeaderactTrackactDownactUpactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformHeaderactTransformPreviewLabelactTransformPromptactTransformQueryactPreviewactChangePreviewactChangePreviewWindowactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactBecomeactResponseactShowHeaderactHideHeader" -var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 42, 50, 68, 76, 85, 102, 123, 138, 159, 183, 198, 207, 227, 242, 263, 278, 292, 306, 319, 336, 344, 357, 373, 385, 399, 413, 424, 435, 453, 470, 477, 496, 508, 522, 531, 546, 558, 571, 582, 593, 605, 619, 634, 642, 649, 654, 663, 674, 685, 698, 713, 724, 737, 744, 757, 770, 787, 802, 815, 829, 843, 859, 879, 891, 914, 932, 956, 974, 991, 1001, 1017, 1039, 1052, 1068, 1080, 1094, 1110, 1128, 1148, 1170, 1184, 1199, 1205, 1219, 1234, 1244, 1260, 1275, 1285, 1293, 1300, 1309, 1322, 1338, 1353, 1362, 1373, 1382, 1391, 1400, 1411} +var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 42, 50, 68, 76, 85, 102, 123, 138, 159, 183, 198, 207, 227, 242, 263, 278, 292, 306, 319, 336, 344, 357, 373, 385, 399, 413, 424, 435, 453, 470, 477, 496, 508, 522, 531, 546, 558, 571, 582, 593, 605, 619, 634, 642, 649, 654, 663, 674, 685, 698, 713, 724, 737, 744, 757, 770, 787, 802, 815, 829, 843, 859, 879, 891, 914, 932, 956, 974, 991, 1001, 1017, 1039, 1052, 1068, 1080, 1094, 1110, 1128, 1148, 1170, 1184, 1199, 1205, 1219, 1234, 1244, 1260, 1275, 1285, 1293, 1300, 1309, 1322, 1338, 1353, 1362, 1373, 1382, 1391, 1400, 1411, 1424, 1437} func (i actionType) String() string { if i < 0 || i >= actionType(len(_actionType_index)-1) { diff --git a/src/options.go b/src/options.go index 0822817..e18bdd1 100644 --- a/src/options.go +++ b/src/options.go @@ -1141,6 +1141,10 @@ func parseActionList(masked string, original string, prevActions []*action, putA appendAction(actToggleTrack) case "toggle-header": appendAction(actToggleHeader) + case "show-header": + appendAction(actShowHeader) + case "hide-header": + appendAction(actHideHeader) case "track": appendAction(actTrack) case "select": diff --git a/src/terminal.go b/src/terminal.go index be1c5dd..0e37858 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -445,6 +445,8 @@ const ( actRebind actBecome actResponse + actShowHeader + actHideHeader ) func processExecution(action actionType) bool { @@ -3715,6 +3717,12 @@ func (t *Terminal) Loop() { t.track = trackEnabled } req(reqInfo) + case actShowHeader: + t.headerVisible = true + req(reqList, reqInfo, reqPrompt, reqHeader) + case actHideHeader: + t.headerVisible = false + req(reqList, reqInfo, reqPrompt, reqHeader) case actToggleHeader: t.headerVisible = !t.headerVisible req(reqList, reqInfo, reqPrompt, reqHeader)