summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/man1/fzf.14
-rw-r--r--src/actiontype_string.go200
-rw-r--r--src/options.go4
-rw-r--r--src/terminal.go17
-rw-r--r--test/test_raw.rb16
5 files changed, 138 insertions, 103 deletions
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index 36c322f2..380078ae 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -1846,10 +1846,12 @@ A key or an event can be bound to one or more of the following actions.
\fBdelete\-char/eof\fR \fIctrl\-d\fR (same as \fBdelete\-char\fR except aborts fzf if query is empty)
\fBdeselect\fR
\fBdeselect\-all\fR (deselect all matches; to also clear non-matching selections, use \fBclear\-multi\fR)
+ \fBdisable\-raw\fR (disable raw mode)
\fBdisable\-search\fR (disable search functionality)
\fBdown\fR \fIctrl\-j down\fR
\fBdown\-match\fR \fIctrl\-n\fR \fIalt\-down\fR (move to the match below the cursor)
\fBdown\-selected\fR (move to the selected item below the cursor)
+ \fBenable\-raw\fR (enable raw mode)
\fBenable\-search\fR (enable search functionality)
\fBend\-of\-line\fR \fIctrl\-e end\fR
\fBexclude\fR (exclude the current item from the result)
@@ -1915,7 +1917,7 @@ A key or an event can be bound to one or more of the following actions.
\fBtoggle\-multi\-line\fR
\fBtoggle\-preview\fR
\fBtoggle\-preview\-wrap\fR
- \fBtoggle\-raw\fR
+ \fBtoggle\-raw\fR (toggle raw mode for displaying non-matching items)
\fBtoggle\-search\fR (toggle search functionality)
\fBtoggle\-sort\fR
\fBtoggle\-track\fR (toggle global tracking option (\fB\-\-track\fR))
diff --git a/src/actiontype_string.go b/src/actiontype_string.go
index f6316a51..dba74540 100644
--- a/src/actiontype_string.go
+++ b/src/actiontype_string.go
@@ -78,108 +78,110 @@ func _() {
_ = x[actToggleMultiLine-67]
_ = x[actToggleHscroll-68]
_ = x[actToggleRaw-69]
- _ = x[actTrackCurrent-70]
- _ = x[actToggleInput-71]
- _ = x[actHideInput-72]
- _ = x[actShowInput-73]
- _ = x[actUntrackCurrent-74]
- _ = x[actDown-75]
- _ = x[actDownMatch-76]
- _ = x[actUp-77]
- _ = x[actUpMatch-78]
- _ = x[actPageUp-79]
- _ = x[actPageDown-80]
- _ = x[actPosition-81]
- _ = x[actHalfPageUp-82]
- _ = x[actHalfPageDown-83]
- _ = x[actOffsetUp-84]
- _ = x[actOffsetDown-85]
- _ = x[actOffsetMiddle-86]
- _ = x[actJump-87]
- _ = x[actJumpAccept-88]
- _ = x[actPrintQuery-89]
- _ = x[actRefreshPreview-90]
- _ = x[actReplaceQuery-91]
- _ = x[actToggleSort-92]
- _ = x[actShowPreview-93]
- _ = x[actHidePreview-94]
- _ = x[actTogglePreview-95]
- _ = x[actTogglePreviewWrap-96]
- _ = x[actTransform-97]
- _ = x[actTransformBorderLabel-98]
- _ = x[actTransformGhost-99]
- _ = x[actTransformHeader-100]
- _ = x[actTransformFooter-101]
- _ = x[actTransformHeaderLabel-102]
- _ = x[actTransformFooterLabel-103]
- _ = x[actTransformInputLabel-104]
- _ = x[actTransformListLabel-105]
- _ = x[actTransformNth-106]
- _ = x[actTransformPointer-107]
- _ = x[actTransformPreviewLabel-108]
- _ = x[actTransformPrompt-109]
- _ = x[actTransformQuery-110]
- _ = x[actTransformSearch-111]
- _ = x[actTrigger-112]
- _ = x[actBgTransform-113]
- _ = x[actBgTransformBorderLabel-114]
- _ = x[actBgTransformGhost-115]
- _ = x[actBgTransformHeader-116]
- _ = x[actBgTransformFooter-117]
- _ = x[actBgTransformHeaderLabel-118]
- _ = x[actBgTransformFooterLabel-119]
- _ = x[actBgTransformInputLabel-120]
- _ = x[actBgTransformListLabel-121]
- _ = x[actBgTransformNth-122]
- _ = x[actBgTransformPointer-123]
- _ = x[actBgTransformPreviewLabel-124]
- _ = x[actBgTransformPrompt-125]
- _ = x[actBgTransformQuery-126]
- _ = x[actBgTransformSearch-127]
- _ = x[actBgCancel-128]
- _ = x[actSearch-129]
- _ = x[actPreview-130]
- _ = x[actPreviewTop-131]
- _ = x[actPreviewBottom-132]
- _ = x[actPreviewUp-133]
- _ = x[actPreviewDown-134]
- _ = x[actPreviewPageUp-135]
- _ = x[actPreviewPageDown-136]
- _ = x[actPreviewHalfPageUp-137]
- _ = x[actPreviewHalfPageDown-138]
- _ = x[actPrevHistory-139]
- _ = x[actPrevSelected-140]
- _ = x[actPrint-141]
- _ = x[actPut-142]
- _ = x[actNextHistory-143]
- _ = x[actNextSelected-144]
- _ = x[actExecute-145]
- _ = x[actExecuteSilent-146]
- _ = x[actExecuteMulti-147]
- _ = x[actSigStop-148]
- _ = x[actFirst-149]
- _ = x[actLast-150]
- _ = x[actReload-151]
- _ = x[actReloadSync-152]
- _ = x[actDisableSearch-153]
- _ = x[actEnableSearch-154]
- _ = x[actSelect-155]
- _ = x[actDeselect-156]
- _ = x[actUnbind-157]
- _ = x[actRebind-158]
- _ = x[actToggleBind-159]
- _ = x[actBecome-160]
- _ = x[actShowHeader-161]
- _ = x[actHideHeader-162]
- _ = x[actBell-163]
- _ = x[actExclude-164]
- _ = x[actExcludeMulti-165]
- _ = x[actAsync-166]
+ _ = x[actEnableRaw-70]
+ _ = x[actDisableRaw-71]
+ _ = x[actTrackCurrent-72]
+ _ = x[actToggleInput-73]
+ _ = x[actHideInput-74]
+ _ = x[actShowInput-75]
+ _ = x[actUntrackCurrent-76]
+ _ = x[actDown-77]
+ _ = x[actDownMatch-78]
+ _ = x[actUp-79]
+ _ = x[actUpMatch-80]
+ _ = x[actPageUp-81]
+ _ = x[actPageDown-82]
+ _ = x[actPosition-83]
+ _ = x[actHalfPageUp-84]
+ _ = x[actHalfPageDown-85]
+ _ = x[actOffsetUp-86]
+ _ = x[actOffsetDown-87]
+ _ = x[actOffsetMiddle-88]
+ _ = x[actJump-89]
+ _ = x[actJumpAccept-90]
+ _ = x[actPrintQuery-91]
+ _ = x[actRefreshPreview-92]
+ _ = x[actReplaceQuery-93]
+ _ = x[actToggleSort-94]
+ _ = x[actShowPreview-95]
+ _ = x[actHidePreview-96]
+ _ = x[actTogglePreview-97]
+ _ = x[actTogglePreviewWrap-98]
+ _ = x[actTransform-99]
+ _ = x[actTransformBorderLabel-100]
+ _ = x[actTransformGhost-101]
+ _ = x[actTransformHeader-102]
+ _ = x[actTransformFooter-103]
+ _ = x[actTransformHeaderLabel-104]
+ _ = x[actTransformFooterLabel-105]
+ _ = x[actTransformInputLabel-106]
+ _ = x[actTransformListLabel-107]
+ _ = x[actTransformNth-108]
+ _ = x[actTransformPointer-109]
+ _ = x[actTransformPreviewLabel-110]
+ _ = x[actTransformPrompt-111]
+ _ = x[actTransformQuery-112]
+ _ = x[actTransformSearch-113]
+ _ = x[actTrigger-114]
+ _ = x[actBgTransform-115]
+ _ = x[actBgTransformBorderLabel-116]
+ _ = x[actBgTransformGhost-117]
+ _ = x[actBgTransformHeader-118]
+ _ = x[actBgTransformFooter-119]
+ _ = x[actBgTransformHeaderLabel-120]
+ _ = x[actBgTransformFooterLabel-121]
+ _ = x[actBgTransformInputLabel-122]
+ _ = x[actBgTransformListLabel-123]
+ _ = x[actBgTransformNth-124]
+ _ = x[actBgTransformPointer-125]
+ _ = x[actBgTransformPreviewLabel-126]
+ _ = x[actBgTransformPrompt-127]
+ _ = x[actBgTransformQuery-128]
+ _ = x[actBgTransformSearch-129]
+ _ = x[actBgCancel-130]
+ _ = x[actSearch-131]
+ _ = x[actPreview-132]
+ _ = x[actPreviewTop-133]
+ _ = x[actPreviewBottom-134]
+ _ = x[actPreviewUp-135]
+ _ = x[actPreviewDown-136]
+ _ = x[actPreviewPageUp-137]
+ _ = x[actPreviewPageDown-138]
+ _ = x[actPreviewHalfPageUp-139]
+ _ = x[actPreviewHalfPageDown-140]
+ _ = x[actPrevHistory-141]
+ _ = x[actPrevSelected-142]
+ _ = x[actPrint-143]
+ _ = x[actPut-144]
+ _ = x[actNextHistory-145]
+ _ = x[actNextSelected-146]
+ _ = x[actExecute-147]
+ _ = x[actExecuteSilent-148]
+ _ = x[actExecuteMulti-149]
+ _ = x[actSigStop-150]
+ _ = x[actFirst-151]
+ _ = x[actLast-152]
+ _ = x[actReload-153]
+ _ = x[actReloadSync-154]
+ _ = x[actDisableSearch-155]
+ _ = x[actEnableSearch-156]
+ _ = x[actSelect-157]
+ _ = x[actDeselect-158]
+ _ = x[actUnbind-159]
+ _ = x[actRebind-160]
+ _ = x[actToggleBind-161]
+ _ = x[actBecome-162]
+ _ = x[actShowHeader-163]
+ _ = x[actHideHeader-164]
+ _ = x[actBell-165]
+ _ = x[actExclude-166]
+ _ = x[actExcludeMulti-167]
+ _ = x[actAsync-168]
}
-const _actionType_name = "actIgnoreactStartactClickactInvalidactBracketedPasteBeginactBracketedPasteEndactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactBackwardSubWordactCancelactChangeBorderLabelactChangeGhostactChangeHeaderactChangeFooteractChangeHeaderLabelactChangeFooterLabelactChangeInputLabelactChangeListLabelactChangeMultiactChangeNthactChangePointeractChangePreviewactChangePreviewLabelactChangePreviewWindowactChangePromptactChangeQueryactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactFatalactForwardCharactForwardWordactForwardSubWordactKillLineactKillWordactKillSubWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactBackwardKillSubWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleTrackCurrentactToggleHeaderactToggleWrapactToggleMultiLineactToggleHscrollactToggleRawactTrackCurrentactToggleInputactHideInputactShowInputactUntrackCurrentactDownactDownMatchactUpactUpMatchactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactOffsetMiddleactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformGhostactTransformHeaderactTransformFooteractTransformHeaderLabelactTransformFooterLabelactTransformInputLabelactTransformListLabelactTransformNthactTransformPointeractTransformPreviewLabelactTransformPromptactTransformQueryactTransformSearchactTriggeractBgTransformactBgTransformBorderLabelactBgTransformGhostactBgTransformHeaderactBgTransformFooteractBgTransformHeaderLabelactBgTransformFooterLabelactBgTransformInputLabelactBgTransformListLabelactBgTransformNthactBgTransformPointeractBgTransformPreviewLabelactBgTransformPromptactBgTransformQueryactBgTransformSearchactBgCancelactSearchactPreviewactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPrintactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactToggleBindactBecomeactShowHeaderactHideHeaderactBellactExcludeactExcludeMultiactAsync"
+const _actionType_name = "actIgnoreactStartactClickactInvalidactBracketedPasteBeginactBracketedPasteEndactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactBackwardSubWordactCancelactChangeBorderLabelactChangeGhostactChangeHeaderactChangeFooteractChangeHeaderLabelactChangeFooterLabelactChangeInputLabelactChangeListLabelactChangeMultiactChangeNthactChangePointeractChangePreviewactChangePreviewLabelactChangePreviewWindowactChangePromptactChangeQueryactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactFatalactForwardCharactForwardWordactForwardSubWordactKillLineactKillWordactKillSubWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactBackwardKillSubWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleTrackCurrentactToggleHeaderactToggleWrapactToggleMultiLineactToggleHscrollactToggleRawactEnableRawactDisableRawactTrackCurrentactToggleInputactHideInputactShowInputactUntrackCurrentactDownactDownMatchactUpactUpMatchactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactOffsetMiddleactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformGhostactTransformHeaderactTransformFooteractTransformHeaderLabelactTransformFooterLabelactTransformInputLabelactTransformListLabelactTransformNthactTransformPointeractTransformPreviewLabelactTransformPromptactTransformQueryactTransformSearchactTriggeractBgTransformactBgTransformBorderLabelactBgTransformGhostactBgTransformHeaderactBgTransformFooteractBgTransformHeaderLabelactBgTransformFooterLabelactBgTransformInputLabelactBgTransformListLabelactBgTransformNthactBgTransformPointeractBgTransformPreviewLabelactBgTransformPromptactBgTransformQueryactBgTransformSearchactBgCancelactSearchactPreviewactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPrintactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactToggleBindactBecomeactShowHeaderactHideHeaderactBellactExcludeactExcludeMultiactAsync"
-var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 57, 77, 84, 92, 110, 118, 127, 144, 165, 180, 201, 225, 240, 258, 267, 287, 301, 316, 331, 351, 371, 390, 408, 422, 434, 450, 466, 487, 509, 524, 538, 552, 565, 582, 590, 603, 619, 631, 639, 653, 667, 684, 695, 706, 720, 738, 755, 762, 781, 803, 815, 829, 838, 853, 865, 878, 889, 900, 912, 926, 947, 962, 975, 993, 1009, 1021, 1036, 1050, 1062, 1074, 1091, 1098, 1110, 1115, 1125, 1134, 1145, 1156, 1169, 1184, 1195, 1208, 1223, 1230, 1243, 1256, 1273, 1288, 1301, 1315, 1329, 1345, 1365, 1377, 1400, 1417, 1435, 1453, 1476, 1499, 1521, 1542, 1557, 1576, 1600, 1618, 1635, 1653, 1663, 1677, 1702, 1721, 1741, 1761, 1786, 1811, 1835, 1858, 1875, 1896, 1922, 1942, 1961, 1981, 1992, 2001, 2011, 2024, 2040, 2052, 2066, 2082, 2100, 2120, 2142, 2156, 2171, 2179, 2185, 2199, 2214, 2224, 2240, 2255, 2265, 2273, 2280, 2289, 2302, 2318, 2333, 2342, 2353, 2362, 2371, 2384, 2393, 2406, 2419, 2426, 2436, 2451, 2459}
+var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 57, 77, 84, 92, 110, 118, 127, 144, 165, 180, 201, 225, 240, 258, 267, 287, 301, 316, 331, 351, 371, 390, 408, 422, 434, 450, 466, 487, 509, 524, 538, 552, 565, 582, 590, 603, 619, 631, 639, 653, 667, 684, 695, 706, 720, 738, 755, 762, 781, 803, 815, 829, 838, 853, 865, 878, 889, 900, 912, 926, 947, 962, 975, 993, 1009, 1021, 1033, 1046, 1061, 1075, 1087, 1099, 1116, 1123, 1135, 1140, 1150, 1159, 1170, 1181, 1194, 1209, 1220, 1233, 1248, 1255, 1268, 1281, 1298, 1313, 1326, 1340, 1354, 1370, 1390, 1402, 1425, 1442, 1460, 1478, 1501, 1524, 1546, 1567, 1582, 1601, 1625, 1643, 1660, 1678, 1688, 1702, 1727, 1746, 1766, 1786, 1811, 1836, 1860, 1883, 1900, 1921, 1947, 1967, 1986, 2006, 2017, 2026, 2036, 2049, 2065, 2077, 2091, 2107, 2125, 2145, 2167, 2181, 2196, 2204, 2210, 2224, 2239, 2249, 2265, 2280, 2290, 2298, 2305, 2314, 2327, 2343, 2358, 2367, 2378, 2387, 2396, 2409, 2418, 2431, 2444, 2451, 2461, 2476, 2484}
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 e7f693b6..7ed6c77d 100644
--- a/src/options.go
+++ b/src/options.go
@@ -1750,6 +1750,10 @@ func parseActionList(masked string, original string, prevActions []*action, putA
appendAction(actToggleHscroll)
case "toggle-raw":
appendAction(actToggleRaw)
+ case "enable-raw":
+ appendAction(actEnableRaw)
+ case "disable-raw":
+ appendAction(actDisableRaw)
case "show-header":
appendAction(actShowHeader)
case "hide-header":
diff --git a/src/terminal.go b/src/terminal.go
index 8508efe2..4cba4ada 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -577,6 +577,8 @@ const (
actToggleMultiLine
actToggleHscroll
actToggleRaw
+ actEnableRaw
+ actDisableRaw
actTrackCurrent
actToggleInput
actHideInput
@@ -6106,8 +6108,19 @@ func (t *Terminal) Loop() error {
t.vmove(dir, true)
}
req(reqList)
- case actToggleRaw:
- t.raw = !t.raw
+ case actToggleRaw, actEnableRaw, actDisableRaw:
+ prevRaw := t.raw
+ switch a.t {
+ case actEnableRaw:
+ t.raw = true
+ case actDisableRaw:
+ t.raw = false
+ case actToggleRaw:
+ t.raw = !t.raw
+ }
+ if prevRaw == t.raw {
+ break
+ }
prevPos := t.cy - t.offset
prevIndex := t.currentIndex()
if t.raw {
diff --git a/test/test_raw.rb b/test/test_raw.rb
index 4e3c36ea..139b1950 100644
--- a/test/test_raw.rb
+++ b/test/test_raw.rb
@@ -5,7 +5,7 @@ require_relative 'lib/common'
# Testing raw mode
class TestRaw < TestInteractive
def test_raw_mode
- tmux.send_keys %(seq 1000 | #{FZF} --raw --bind ctrl-x:toggle-raw --gutter '▌' --multi), :Enter
+ tmux.send_keys %(seq 1000 | #{FZF} --raw --bind ctrl-x:toggle-raw,a:enable-raw,b:disable-raw --gutter '▌' --multi), :Enter
tmux.until { assert_equal 1000, it.match_count }
tmux.send_keys 1
@@ -56,5 +56,19 @@ class TestRaw < TestInteractive
assert_includes it, '▌ 110'
assert_includes it, '>>11'
end
+
+ tmux.send_keys 'a'
+ tmux.until do
+ assert_equal 1, it.select_count
+ assert_includes it, '>>11'
+ assert_includes it, '▖ 10'
+ end
+
+ tmux.send_keys 'b'
+ tmux.until do
+ assert_equal 1, it.select_count
+ assert_includes it, '▌ 110'
+ assert_includes it, '>>11'
+ end
end
end