mirror of
https://github.com/junegunn/fzf.git
synced 2025-11-12 21:33:49 -05:00
@@ -8,6 +8,7 @@ CHANGELOG
|
|||||||
# Display "Type to search" when the input is empty
|
# Display "Type to search" when the input is empty
|
||||||
fzf --ghost "Type to search"
|
fzf --ghost "Type to search"
|
||||||
```
|
```
|
||||||
|
- Bug fixes and improvements
|
||||||
|
|
||||||
0.60.3
|
0.60.3
|
||||||
------
|
------
|
||||||
|
|||||||
@@ -12,139 +12,141 @@ func _() {
|
|||||||
_ = x[actStart-1]
|
_ = x[actStart-1]
|
||||||
_ = x[actClick-2]
|
_ = x[actClick-2]
|
||||||
_ = x[actInvalid-3]
|
_ = x[actInvalid-3]
|
||||||
_ = x[actChar-4]
|
_ = x[actBracketedPasteBegin-4]
|
||||||
_ = x[actMouse-5]
|
_ = x[actBracketedPasteEnd-5]
|
||||||
_ = x[actBeginningOfLine-6]
|
_ = x[actChar-6]
|
||||||
_ = x[actAbort-7]
|
_ = x[actMouse-7]
|
||||||
_ = x[actAccept-8]
|
_ = x[actBeginningOfLine-8]
|
||||||
_ = x[actAcceptNonEmpty-9]
|
_ = x[actAbort-9]
|
||||||
_ = x[actAcceptOrPrintQuery-10]
|
_ = x[actAccept-10]
|
||||||
_ = x[actBackwardChar-11]
|
_ = x[actAcceptNonEmpty-11]
|
||||||
_ = x[actBackwardDeleteChar-12]
|
_ = x[actAcceptOrPrintQuery-12]
|
||||||
_ = x[actBackwardDeleteCharEof-13]
|
_ = x[actBackwardChar-13]
|
||||||
_ = x[actBackwardWord-14]
|
_ = x[actBackwardDeleteChar-14]
|
||||||
_ = x[actCancel-15]
|
_ = x[actBackwardDeleteCharEof-15]
|
||||||
_ = x[actChangeBorderLabel-16]
|
_ = x[actBackwardWord-16]
|
||||||
_ = x[actChangeListLabel-17]
|
_ = x[actCancel-17]
|
||||||
_ = x[actChangeInputLabel-18]
|
_ = x[actChangeBorderLabel-18]
|
||||||
_ = x[actChangeHeader-19]
|
_ = x[actChangeListLabel-19]
|
||||||
_ = x[actChangeHeaderLabel-20]
|
_ = x[actChangeInputLabel-20]
|
||||||
_ = x[actChangeMulti-21]
|
_ = x[actChangeHeader-21]
|
||||||
_ = x[actChangePreviewLabel-22]
|
_ = x[actChangeHeaderLabel-22]
|
||||||
_ = x[actChangePrompt-23]
|
_ = x[actChangeMulti-23]
|
||||||
_ = x[actChangeQuery-24]
|
_ = x[actChangePreviewLabel-24]
|
||||||
_ = x[actChangeNth-25]
|
_ = x[actChangePrompt-25]
|
||||||
_ = x[actClearScreen-26]
|
_ = x[actChangeQuery-26]
|
||||||
_ = x[actClearQuery-27]
|
_ = x[actChangeNth-27]
|
||||||
_ = x[actClearSelection-28]
|
_ = x[actClearScreen-28]
|
||||||
_ = x[actClose-29]
|
_ = x[actClearQuery-29]
|
||||||
_ = x[actDeleteChar-30]
|
_ = x[actClearSelection-30]
|
||||||
_ = x[actDeleteCharEof-31]
|
_ = x[actClose-31]
|
||||||
_ = x[actEndOfLine-32]
|
_ = x[actDeleteChar-32]
|
||||||
_ = x[actFatal-33]
|
_ = x[actDeleteCharEof-33]
|
||||||
_ = x[actForwardChar-34]
|
_ = x[actEndOfLine-34]
|
||||||
_ = x[actForwardWord-35]
|
_ = x[actFatal-35]
|
||||||
_ = x[actKillLine-36]
|
_ = x[actForwardChar-36]
|
||||||
_ = x[actKillWord-37]
|
_ = x[actForwardWord-37]
|
||||||
_ = x[actUnixLineDiscard-38]
|
_ = x[actKillLine-38]
|
||||||
_ = x[actUnixWordRubout-39]
|
_ = x[actKillWord-39]
|
||||||
_ = x[actYank-40]
|
_ = x[actUnixLineDiscard-40]
|
||||||
_ = x[actBackwardKillWord-41]
|
_ = x[actUnixWordRubout-41]
|
||||||
_ = x[actSelectAll-42]
|
_ = x[actYank-42]
|
||||||
_ = x[actDeselectAll-43]
|
_ = x[actBackwardKillWord-43]
|
||||||
_ = x[actToggle-44]
|
_ = x[actSelectAll-44]
|
||||||
_ = x[actToggleSearch-45]
|
_ = x[actDeselectAll-45]
|
||||||
_ = x[actToggleAll-46]
|
_ = x[actToggle-46]
|
||||||
_ = x[actToggleDown-47]
|
_ = x[actToggleSearch-47]
|
||||||
_ = x[actToggleUp-48]
|
_ = x[actToggleAll-48]
|
||||||
_ = x[actToggleIn-49]
|
_ = x[actToggleDown-49]
|
||||||
_ = x[actToggleOut-50]
|
_ = x[actToggleUp-50]
|
||||||
_ = x[actToggleTrack-51]
|
_ = x[actToggleIn-51]
|
||||||
_ = x[actToggleTrackCurrent-52]
|
_ = x[actToggleOut-52]
|
||||||
_ = x[actToggleHeader-53]
|
_ = x[actToggleTrack-53]
|
||||||
_ = x[actToggleWrap-54]
|
_ = x[actToggleTrackCurrent-54]
|
||||||
_ = x[actToggleMultiLine-55]
|
_ = x[actToggleHeader-55]
|
||||||
_ = x[actToggleHscroll-56]
|
_ = x[actToggleWrap-56]
|
||||||
_ = x[actTrackCurrent-57]
|
_ = x[actToggleMultiLine-57]
|
||||||
_ = x[actToggleInput-58]
|
_ = x[actToggleHscroll-58]
|
||||||
_ = x[actHideInput-59]
|
_ = x[actTrackCurrent-59]
|
||||||
_ = x[actShowInput-60]
|
_ = x[actToggleInput-60]
|
||||||
_ = x[actUntrackCurrent-61]
|
_ = x[actHideInput-61]
|
||||||
_ = x[actDown-62]
|
_ = x[actShowInput-62]
|
||||||
_ = x[actUp-63]
|
_ = x[actUntrackCurrent-63]
|
||||||
_ = x[actPageUp-64]
|
_ = x[actDown-64]
|
||||||
_ = x[actPageDown-65]
|
_ = x[actUp-65]
|
||||||
_ = x[actPosition-66]
|
_ = x[actPageUp-66]
|
||||||
_ = x[actHalfPageUp-67]
|
_ = x[actPageDown-67]
|
||||||
_ = x[actHalfPageDown-68]
|
_ = x[actPosition-68]
|
||||||
_ = x[actOffsetUp-69]
|
_ = x[actHalfPageUp-69]
|
||||||
_ = x[actOffsetDown-70]
|
_ = x[actHalfPageDown-70]
|
||||||
_ = x[actOffsetMiddle-71]
|
_ = x[actOffsetUp-71]
|
||||||
_ = x[actJump-72]
|
_ = x[actOffsetDown-72]
|
||||||
_ = x[actJumpAccept-73]
|
_ = x[actOffsetMiddle-73]
|
||||||
_ = x[actPrintQuery-74]
|
_ = x[actJump-74]
|
||||||
_ = x[actRefreshPreview-75]
|
_ = x[actJumpAccept-75]
|
||||||
_ = x[actReplaceQuery-76]
|
_ = x[actPrintQuery-76]
|
||||||
_ = x[actToggleSort-77]
|
_ = x[actRefreshPreview-77]
|
||||||
_ = x[actShowPreview-78]
|
_ = x[actReplaceQuery-78]
|
||||||
_ = x[actHidePreview-79]
|
_ = x[actToggleSort-79]
|
||||||
_ = x[actTogglePreview-80]
|
_ = x[actShowPreview-80]
|
||||||
_ = x[actTogglePreviewWrap-81]
|
_ = x[actHidePreview-81]
|
||||||
_ = x[actTransform-82]
|
_ = x[actTogglePreview-82]
|
||||||
_ = x[actTransformBorderLabel-83]
|
_ = x[actTogglePreviewWrap-83]
|
||||||
_ = x[actTransformListLabel-84]
|
_ = x[actTransform-84]
|
||||||
_ = x[actTransformInputLabel-85]
|
_ = x[actTransformBorderLabel-85]
|
||||||
_ = x[actTransformHeader-86]
|
_ = x[actTransformListLabel-86]
|
||||||
_ = x[actTransformHeaderLabel-87]
|
_ = x[actTransformInputLabel-87]
|
||||||
_ = x[actTransformNth-88]
|
_ = x[actTransformHeader-88]
|
||||||
_ = x[actTransformPreviewLabel-89]
|
_ = x[actTransformHeaderLabel-89]
|
||||||
_ = x[actTransformPrompt-90]
|
_ = x[actTransformNth-90]
|
||||||
_ = x[actTransformQuery-91]
|
_ = x[actTransformPreviewLabel-91]
|
||||||
_ = x[actTransformSearch-92]
|
_ = x[actTransformPrompt-92]
|
||||||
_ = x[actSearch-93]
|
_ = x[actTransformQuery-93]
|
||||||
_ = x[actPreview-94]
|
_ = x[actTransformSearch-94]
|
||||||
_ = x[actChangePreview-95]
|
_ = x[actSearch-95]
|
||||||
_ = x[actChangePreviewWindow-96]
|
_ = x[actPreview-96]
|
||||||
_ = x[actPreviewTop-97]
|
_ = x[actChangePreview-97]
|
||||||
_ = x[actPreviewBottom-98]
|
_ = x[actChangePreviewWindow-98]
|
||||||
_ = x[actPreviewUp-99]
|
_ = x[actPreviewTop-99]
|
||||||
_ = x[actPreviewDown-100]
|
_ = x[actPreviewBottom-100]
|
||||||
_ = x[actPreviewPageUp-101]
|
_ = x[actPreviewUp-101]
|
||||||
_ = x[actPreviewPageDown-102]
|
_ = x[actPreviewDown-102]
|
||||||
_ = x[actPreviewHalfPageUp-103]
|
_ = x[actPreviewPageUp-103]
|
||||||
_ = x[actPreviewHalfPageDown-104]
|
_ = x[actPreviewPageDown-104]
|
||||||
_ = x[actPrevHistory-105]
|
_ = x[actPreviewHalfPageUp-105]
|
||||||
_ = x[actPrevSelected-106]
|
_ = x[actPreviewHalfPageDown-106]
|
||||||
_ = x[actPrint-107]
|
_ = x[actPrevHistory-107]
|
||||||
_ = x[actPut-108]
|
_ = x[actPrevSelected-108]
|
||||||
_ = x[actNextHistory-109]
|
_ = x[actPrint-109]
|
||||||
_ = x[actNextSelected-110]
|
_ = x[actPut-110]
|
||||||
_ = x[actExecute-111]
|
_ = x[actNextHistory-111]
|
||||||
_ = x[actExecuteSilent-112]
|
_ = x[actNextSelected-112]
|
||||||
_ = x[actExecuteMulti-113]
|
_ = x[actExecute-113]
|
||||||
_ = x[actSigStop-114]
|
_ = x[actExecuteSilent-114]
|
||||||
_ = x[actFirst-115]
|
_ = x[actExecuteMulti-115]
|
||||||
_ = x[actLast-116]
|
_ = x[actSigStop-116]
|
||||||
_ = x[actReload-117]
|
_ = x[actFirst-117]
|
||||||
_ = x[actReloadSync-118]
|
_ = x[actLast-118]
|
||||||
_ = x[actDisableSearch-119]
|
_ = x[actReload-119]
|
||||||
_ = x[actEnableSearch-120]
|
_ = x[actReloadSync-120]
|
||||||
_ = x[actSelect-121]
|
_ = x[actDisableSearch-121]
|
||||||
_ = x[actDeselect-122]
|
_ = x[actEnableSearch-122]
|
||||||
_ = x[actUnbind-123]
|
_ = x[actSelect-123]
|
||||||
_ = x[actRebind-124]
|
_ = x[actDeselect-124]
|
||||||
_ = x[actToggleBind-125]
|
_ = x[actUnbind-125]
|
||||||
_ = x[actBecome-126]
|
_ = x[actRebind-126]
|
||||||
_ = x[actShowHeader-127]
|
_ = x[actToggleBind-127]
|
||||||
_ = x[actHideHeader-128]
|
_ = x[actBecome-128]
|
||||||
_ = x[actBell-129]
|
_ = x[actShowHeader-129]
|
||||||
_ = x[actExclude-130]
|
_ = x[actHideHeader-130]
|
||||||
_ = x[actExcludeMulti-131]
|
_ = x[actBell-131]
|
||||||
|
_ = x[actExclude-132]
|
||||||
|
_ = x[actExcludeMulti-133]
|
||||||
}
|
}
|
||||||
|
|
||||||
const _actionType_name = "actIgnoreactStartactClickactInvalidactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactCancelactChangeBorderLabelactChangeListLabelactChangeInputLabelactChangeHeaderactChangeHeaderLabelactChangeMultiactChangePreviewLabelactChangePromptactChangeQueryactChangeNthactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactFatalactForwardCharactForwardWordactKillLineactKillWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleTrackCurrentactToggleHeaderactToggleWrapactToggleMultiLineactToggleHscrollactTrackCurrentactToggleInputactHideInputactShowInputactUntrackCurrentactDownactUpactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactOffsetMiddleactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformListLabelactTransformInputLabelactTransformHeaderactTransformHeaderLabelactTransformNthactTransformPreviewLabelactTransformPromptactTransformQueryactTransformSearchactSearchactPreviewactChangePreviewactChangePreviewWindowactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPrintactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactToggleBindactBecomeactShowHeaderactHideHeaderactBellactExcludeactExcludeMulti"
|
const _actionType_name = "actIgnoreactStartactClickactInvalidactBracketedPasteBeginactBracketedPasteEndactCharactMouseactBeginningOfLineactAbortactAcceptactAcceptNonEmptyactAcceptOrPrintQueryactBackwardCharactBackwardDeleteCharactBackwardDeleteCharEofactBackwardWordactCancelactChangeBorderLabelactChangeListLabelactChangeInputLabelactChangeHeaderactChangeHeaderLabelactChangeMultiactChangePreviewLabelactChangePromptactChangeQueryactChangeNthactClearScreenactClearQueryactClearSelectionactCloseactDeleteCharactDeleteCharEofactEndOfLineactFatalactForwardCharactForwardWordactKillLineactKillWordactUnixLineDiscardactUnixWordRuboutactYankactBackwardKillWordactSelectAllactDeselectAllactToggleactToggleSearchactToggleAllactToggleDownactToggleUpactToggleInactToggleOutactToggleTrackactToggleTrackCurrentactToggleHeaderactToggleWrapactToggleMultiLineactToggleHscrollactTrackCurrentactToggleInputactHideInputactShowInputactUntrackCurrentactDownactUpactPageUpactPageDownactPositionactHalfPageUpactHalfPageDownactOffsetUpactOffsetDownactOffsetMiddleactJumpactJumpAcceptactPrintQueryactRefreshPreviewactReplaceQueryactToggleSortactShowPreviewactHidePreviewactTogglePreviewactTogglePreviewWrapactTransformactTransformBorderLabelactTransformListLabelactTransformInputLabelactTransformHeaderactTransformHeaderLabelactTransformNthactTransformPreviewLabelactTransformPromptactTransformQueryactTransformSearchactSearchactPreviewactChangePreviewactChangePreviewWindowactPreviewTopactPreviewBottomactPreviewUpactPreviewDownactPreviewPageUpactPreviewPageDownactPreviewHalfPageUpactPreviewHalfPageDownactPrevHistoryactPrevSelectedactPrintactPutactNextHistoryactNextSelectedactExecuteactExecuteSilentactExecuteMultiactSigStopactFirstactLastactReloadactReloadSyncactDisableSearchactEnableSearchactSelectactDeselectactUnbindactRebindactToggleBindactBecomeactShowHeaderactHideHeaderactBellactExcludeactExcludeMulti"
|
||||||
|
|
||||||
var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 42, 50, 68, 76, 85, 102, 123, 138, 159, 183, 198, 207, 227, 245, 264, 279, 299, 313, 334, 349, 363, 375, 389, 402, 419, 427, 440, 456, 468, 476, 490, 504, 515, 526, 544, 561, 568, 587, 599, 613, 622, 637, 649, 662, 673, 684, 696, 710, 731, 746, 759, 777, 793, 808, 822, 834, 846, 863, 870, 875, 884, 895, 906, 919, 934, 945, 958, 973, 980, 993, 1006, 1023, 1038, 1051, 1065, 1079, 1095, 1115, 1127, 1150, 1171, 1193, 1211, 1234, 1249, 1273, 1291, 1308, 1326, 1335, 1345, 1361, 1383, 1396, 1412, 1424, 1438, 1454, 1472, 1492, 1514, 1528, 1543, 1551, 1557, 1571, 1586, 1596, 1612, 1627, 1637, 1645, 1652, 1661, 1674, 1690, 1705, 1714, 1725, 1734, 1743, 1756, 1765, 1778, 1791, 1798, 1808, 1823}
|
var _actionType_index = [...]uint16{0, 9, 17, 25, 35, 57, 77, 84, 92, 110, 118, 127, 144, 165, 180, 201, 225, 240, 249, 269, 287, 306, 321, 341, 355, 376, 391, 405, 417, 431, 444, 461, 469, 482, 498, 510, 518, 532, 546, 557, 568, 586, 603, 610, 629, 641, 655, 664, 679, 691, 704, 715, 726, 738, 752, 773, 788, 801, 819, 835, 850, 864, 876, 888, 905, 912, 917, 926, 937, 948, 961, 976, 987, 1000, 1015, 1022, 1035, 1048, 1065, 1080, 1093, 1107, 1121, 1137, 1157, 1169, 1192, 1213, 1235, 1253, 1276, 1291, 1315, 1333, 1350, 1368, 1377, 1387, 1403, 1425, 1438, 1454, 1466, 1480, 1496, 1514, 1534, 1556, 1570, 1585, 1593, 1599, 1613, 1628, 1638, 1654, 1669, 1679, 1687, 1694, 1703, 1716, 1732, 1747, 1756, 1767, 1776, 1785, 1798, 1807, 1820, 1833, 1840, 1850, 1865}
|
||||||
|
|
||||||
func (i actionType) String() string {
|
func (i actionType) String() string {
|
||||||
if i < 0 || i >= actionType(len(_actionType_index)-1) {
|
if i < 0 || i >= actionType(len(_actionType_index)-1) {
|
||||||
|
|||||||
@@ -279,6 +279,7 @@ type Terminal struct {
|
|||||||
yanked []rune
|
yanked []rune
|
||||||
input []rune
|
input []rune
|
||||||
inputOverride *[]rune
|
inputOverride *[]rune
|
||||||
|
pasting *[]rune
|
||||||
multi int
|
multi int
|
||||||
multiLine bool
|
multiLine bool
|
||||||
sort bool
|
sort bool
|
||||||
@@ -459,6 +460,8 @@ const (
|
|||||||
actStart
|
actStart
|
||||||
actClick
|
actClick
|
||||||
actInvalid
|
actInvalid
|
||||||
|
actBracketedPasteBegin
|
||||||
|
actBracketedPasteEnd
|
||||||
actChar
|
actChar
|
||||||
actMouse
|
actMouse
|
||||||
actBeginningOfLine
|
actBeginningOfLine
|
||||||
@@ -668,6 +671,8 @@ func defaultKeymap() map[tui.Event][]*action {
|
|||||||
|
|
||||||
add(tui.Fatal, actFatal)
|
add(tui.Fatal, actFatal)
|
||||||
add(tui.Invalid, actInvalid)
|
add(tui.Invalid, actInvalid)
|
||||||
|
add(tui.BracketedPasteBegin, actBracketedPasteBegin)
|
||||||
|
add(tui.BracketedPasteEnd, actBracketedPasteEnd)
|
||||||
add(tui.CtrlA, actBeginningOfLine)
|
add(tui.CtrlA, actBeginningOfLine)
|
||||||
add(tui.CtrlB, actBackwardChar)
|
add(tui.CtrlB, actBackwardChar)
|
||||||
add(tui.CtrlC, actAbort)
|
add(tui.CtrlC, actAbort)
|
||||||
@@ -4977,6 +4982,14 @@ func (t *Terminal) Loop() error {
|
|||||||
case actInvalid:
|
case actInvalid:
|
||||||
t.mutex.Unlock()
|
t.mutex.Unlock()
|
||||||
return false
|
return false
|
||||||
|
case actBracketedPasteBegin:
|
||||||
|
current := []rune(t.input)
|
||||||
|
t.pasting = ¤t
|
||||||
|
case actBracketedPasteEnd:
|
||||||
|
if t.pasting != nil {
|
||||||
|
queryChanged = string(t.input) != string(*t.pasting)
|
||||||
|
t.pasting = nil
|
||||||
|
}
|
||||||
case actTogglePreview, actShowPreview, actHidePreview:
|
case actTogglePreview, actShowPreview, actHidePreview:
|
||||||
var act bool
|
var act bool
|
||||||
switch a.t {
|
switch a.t {
|
||||||
@@ -6036,7 +6049,7 @@ func (t *Terminal) Loop() error {
|
|||||||
} else {
|
} else {
|
||||||
t.truncateQuery()
|
t.truncateQuery()
|
||||||
}
|
}
|
||||||
queryChanged = string(previousInput) != string(t.input)
|
queryChanged = queryChanged || t.pasting == nil && string(previousInput) != string(t.input)
|
||||||
if queryChanged {
|
if queryChanged {
|
||||||
t.inputOverride = nil
|
t.inputOverride = nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,35 +84,37 @@ func _() {
|
|||||||
_ = x[CtrlAlt-73]
|
_ = x[CtrlAlt-73]
|
||||||
_ = x[Invalid-74]
|
_ = x[Invalid-74]
|
||||||
_ = x[Fatal-75]
|
_ = x[Fatal-75]
|
||||||
_ = x[Mouse-76]
|
_ = x[BracketedPasteBegin-76]
|
||||||
_ = x[DoubleClick-77]
|
_ = x[BracketedPasteEnd-77]
|
||||||
_ = x[LeftClick-78]
|
_ = x[Mouse-78]
|
||||||
_ = x[RightClick-79]
|
_ = x[DoubleClick-79]
|
||||||
_ = x[SLeftClick-80]
|
_ = x[LeftClick-80]
|
||||||
_ = x[SRightClick-81]
|
_ = x[RightClick-81]
|
||||||
_ = x[ScrollUp-82]
|
_ = x[SLeftClick-82]
|
||||||
_ = x[ScrollDown-83]
|
_ = x[SRightClick-83]
|
||||||
_ = x[SScrollUp-84]
|
_ = x[ScrollUp-84]
|
||||||
_ = x[SScrollDown-85]
|
_ = x[ScrollDown-85]
|
||||||
_ = x[PreviewScrollUp-86]
|
_ = x[SScrollUp-86]
|
||||||
_ = x[PreviewScrollDown-87]
|
_ = x[SScrollDown-87]
|
||||||
_ = x[Resize-88]
|
_ = x[PreviewScrollUp-88]
|
||||||
_ = x[Change-89]
|
_ = x[PreviewScrollDown-89]
|
||||||
_ = x[BackwardEOF-90]
|
_ = x[Resize-90]
|
||||||
_ = x[Start-91]
|
_ = x[Change-91]
|
||||||
_ = x[Load-92]
|
_ = x[BackwardEOF-92]
|
||||||
_ = x[Focus-93]
|
_ = x[Start-93]
|
||||||
_ = x[One-94]
|
_ = x[Load-94]
|
||||||
_ = x[Zero-95]
|
_ = x[Focus-95]
|
||||||
_ = x[Result-96]
|
_ = x[One-96]
|
||||||
_ = x[Jump-97]
|
_ = x[Zero-97]
|
||||||
_ = x[JumpCancel-98]
|
_ = x[Result-98]
|
||||||
_ = x[ClickHeader-99]
|
_ = x[Jump-99]
|
||||||
|
_ = x[JumpCancel-100]
|
||||||
|
_ = x[ClickHeader-101]
|
||||||
}
|
}
|
||||||
|
|
||||||
const _EventType_name = "RuneCtrlACtrlBCtrlCCtrlDCtrlECtrlFCtrlGCtrlHTabCtrlJCtrlKCtrlLEnterCtrlNCtrlOCtrlPCtrlQCtrlRCtrlSCtrlTCtrlUCtrlVCtrlWCtrlXCtrlYCtrlZEscCtrlSpaceCtrlDeleteCtrlBackSlashCtrlRightBracketCtrlCaretCtrlSlashShiftTabBackspaceDeletePageUpPageDownUpDownLeftRightHomeEndInsertShiftUpShiftDownShiftLeftShiftRightShiftDeleteF1F2F3F4F5F6F7F8F9F10F11F12AltBackspaceAltUpAltDownAltLeftAltRightAltShiftUpAltShiftDownAltShiftLeftAltShiftRightAltCtrlAltInvalidFatalMouseDoubleClickLeftClickRightClickSLeftClickSRightClickScrollUpScrollDownSScrollUpSScrollDownPreviewScrollUpPreviewScrollDownResizeChangeBackwardEOFStartLoadFocusOneZeroResultJumpJumpCancelClickHeader"
|
const _EventType_name = "RuneCtrlACtrlBCtrlCCtrlDCtrlECtrlFCtrlGCtrlHTabCtrlJCtrlKCtrlLEnterCtrlNCtrlOCtrlPCtrlQCtrlRCtrlSCtrlTCtrlUCtrlVCtrlWCtrlXCtrlYCtrlZEscCtrlSpaceCtrlDeleteCtrlBackSlashCtrlRightBracketCtrlCaretCtrlSlashShiftTabBackspaceDeletePageUpPageDownUpDownLeftRightHomeEndInsertShiftUpShiftDownShiftLeftShiftRightShiftDeleteF1F2F3F4F5F6F7F8F9F10F11F12AltBackspaceAltUpAltDownAltLeftAltRightAltShiftUpAltShiftDownAltShiftLeftAltShiftRightAltCtrlAltInvalidFatalBracketedPasteBeginBracketedPasteEndMouseDoubleClickLeftClickRightClickSLeftClickSRightClickScrollUpScrollDownSScrollUpSScrollDownPreviewScrollUpPreviewScrollDownResizeChangeBackwardEOFStartLoadFocusOneZeroResultJumpJumpCancelClickHeader"
|
||||||
|
|
||||||
var _EventType_index = [...]uint16{0, 4, 9, 14, 19, 24, 29, 34, 39, 44, 47, 52, 57, 62, 67, 72, 77, 82, 87, 92, 97, 102, 107, 112, 117, 122, 127, 132, 135, 144, 154, 167, 183, 192, 201, 209, 218, 224, 230, 238, 240, 244, 248, 253, 257, 260, 266, 273, 282, 291, 301, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 333, 336, 339, 351, 356, 363, 370, 378, 388, 400, 412, 425, 428, 435, 442, 447, 452, 463, 472, 482, 492, 503, 511, 521, 530, 541, 556, 573, 579, 585, 596, 601, 605, 610, 613, 617, 623, 627, 637, 648}
|
var _EventType_index = [...]uint16{0, 4, 9, 14, 19, 24, 29, 34, 39, 44, 47, 52, 57, 62, 67, 72, 77, 82, 87, 92, 97, 102, 107, 112, 117, 122, 127, 132, 135, 144, 154, 167, 183, 192, 201, 209, 218, 224, 230, 238, 240, 244, 248, 253, 257, 260, 266, 273, 282, 291, 301, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 333, 336, 339, 351, 356, 363, 370, 378, 388, 400, 412, 425, 428, 435, 442, 447, 466, 483, 488, 499, 508, 518, 528, 539, 547, 557, 566, 577, 592, 609, 615, 621, 632, 637, 641, 646, 649, 653, 659, 663, 673, 684}
|
||||||
|
|
||||||
func (i EventType) String() string {
|
func (i EventType) String() string {
|
||||||
if i < 0 || i >= EventType(len(_EventType_index)-1) {
|
if i < 0 || i >= EventType(len(_EventType_index)-1) {
|
||||||
|
|||||||
@@ -214,6 +214,7 @@ func (r *LightRenderer) Init() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
r.enableMouse()
|
r.enableMouse()
|
||||||
|
r.csi("?2004h") // Enable bracketed paste mode
|
||||||
r.csi(fmt.Sprintf("%dA", r.MaxY()-1))
|
r.csi(fmt.Sprintf("%dA", r.MaxY()-1))
|
||||||
r.csi("G")
|
r.csi("G")
|
||||||
r.csi("K")
|
r.csi("K")
|
||||||
@@ -462,10 +463,11 @@ func (r *LightRenderer) escSequence(sz *int) Event {
|
|||||||
}
|
}
|
||||||
// Bracketed paste mode: \e[200~ ... \e[201~
|
// Bracketed paste mode: \e[200~ ... \e[201~
|
||||||
if len(r.buffer) > 5 && r.buffer[3] == '0' && (r.buffer[4] == '0' || r.buffer[4] == '1') && r.buffer[5] == '~' {
|
if len(r.buffer) > 5 && r.buffer[3] == '0' && (r.buffer[4] == '0' || r.buffer[4] == '1') && r.buffer[5] == '~' {
|
||||||
// Immediately discard the sequence from the buffer and reread input
|
*sz = 6
|
||||||
r.buffer = r.buffer[6:]
|
if r.buffer[4] == '0' {
|
||||||
*sz = 0
|
return Event{BracketedPasteBegin, 0, nil}
|
||||||
return r.GetChar()
|
}
|
||||||
|
return Event{BracketedPasteEnd, 0, nil}
|
||||||
}
|
}
|
||||||
return Event{Invalid, 0, nil} // INS
|
return Event{Invalid, 0, nil} // INS
|
||||||
case '3':
|
case '3':
|
||||||
|
|||||||
@@ -197,6 +197,7 @@ func (r *FullscreenRenderer) initScreen() error {
|
|||||||
if e = s.Init(); e != nil {
|
if e = s.Init(); e != nil {
|
||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
s.EnablePaste()
|
||||||
if r.mouse {
|
if r.mouse {
|
||||||
s.EnableMouse()
|
s.EnableMouse()
|
||||||
} else {
|
} else {
|
||||||
@@ -266,6 +267,11 @@ func (r *FullscreenRenderer) Size() TermSize {
|
|||||||
func (r *FullscreenRenderer) GetChar() Event {
|
func (r *FullscreenRenderer) GetChar() Event {
|
||||||
ev := _screen.PollEvent()
|
ev := _screen.PollEvent()
|
||||||
switch ev := ev.(type) {
|
switch ev := ev.(type) {
|
||||||
|
case *tcell.EventPaste:
|
||||||
|
if ev.Start() {
|
||||||
|
return Event{BracketedPasteBegin, 0, nil}
|
||||||
|
}
|
||||||
|
return Event{BracketedPasteEnd, 0, nil}
|
||||||
case *tcell.EventResize:
|
case *tcell.EventResize:
|
||||||
// Ignore the first resize event
|
// Ignore the first resize event
|
||||||
// https://github.com/gdamore/tcell/blob/v2.7.0/TUTORIAL.md?plain=1#L18
|
// https://github.com/gdamore/tcell/blob/v2.7.0/TUTORIAL.md?plain=1#L18
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ const (
|
|||||||
|
|
||||||
Invalid
|
Invalid
|
||||||
Fatal
|
Fatal
|
||||||
|
BracketedPasteBegin
|
||||||
|
BracketedPasteEnd
|
||||||
|
|
||||||
Mouse
|
Mouse
|
||||||
DoubleClick
|
DoubleClick
|
||||||
|
|||||||
Reference in New Issue
Block a user