summaryrefslogtreecommitdiff
path: root/src/terminal.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-03-28 21:27:44 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-03-28 21:28:25 +0900
commit664ee1f4832340ea301f9525cb2d4ce8fc7f12cd (patch)
treeb72270bcb3aec5ac80cee2fa1a5bbfea403a79cc /src/terminal.go
parentdac5b6fde1cb6242492e8d27cbea162e37517be0 (diff)
downloadfzf-664ee1f4832340ea301f9525cb2d4ce8fc7f12cd.tar.gz
Add change-pointer and transform-pointer
Close #4178
Diffstat (limited to 'src/terminal.go')
-rw-r--r--src/terminal.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/terminal.go b/src/terminal.go
index cd8d4924..ec6e5d9b 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -547,12 +547,14 @@ const (
actTransformHeader
actTransformHeaderLabel
actTransformNth
+ actTransformPointer
actTransformPreviewLabel
actTransformPrompt
actTransformQuery
actTransformSearch
actSearch
actPreview
+ actChangePointer
actChangePreview
actChangePreviewWindow
actPreviewTop
@@ -5951,6 +5953,21 @@ func (t *Terminal) Loop() error {
}
}
}
+ case actChangePointer, actTransformPointer:
+ pointer := a.a
+ if a.t == actTransformPointer {
+ pointer = t.captureLine(a.a)
+ }
+ length := uniseg.StringWidth(pointer)
+ if length <= 2 {
+ if length != t.pointerLen {
+ t.forceRerenderList()
+ }
+ t.pointer = pointer
+ t.pointerLen = length
+ t.pointerEmpty = strings.Repeat(" ", t.pointerLen)
+ req(reqList)
+ }
case actChangePreview:
if t.previewOpts.command != a.a {
t.previewOpts.command = a.a