summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2020-10-23 21:37:20 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2020-10-23 21:37:20 +0900
commita4d9b0b468b872180cbfa851be236098756b5e62 (patch)
treee46a5d679ad68feda614b891c5260546beac2e11 /src
parente2b87e0d741111fd1f437f8e06f8286d9ef47dff (diff)
Support ANSI escape sequence for clearing display in preview window
fzf --preview 'for i in $(seq 100000); do (( i % 200 == 0 )) && printf "\033[2J" echo "$i" sleep 0.01 done'
Diffstat (limited to 'src')
-rw-r--r--src/terminal.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/terminal.go b/src/terminal.go
index e1c5c7bf..17a4377f 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -26,6 +26,7 @@ var numericPrefix *regexp.Regexp
var activeTempFiles []string
const ellipsis string = ".."
+const clearCode string = "\x1b[2J"
func init() {
placeholder = regexp.MustCompile(`\\?(?:{[+sf]*[0-9,-.]*}|{q}|{\+?f?nf?})`)
@@ -1834,6 +1835,13 @@ func (t *Terminal) Loop() {
line := eachLine.line
err := eachLine.err
if len(line) > 0 {
+ clearIndex := strings.Index(line, clearCode)
+ if clearIndex >= 0 {
+ lines = []string{}
+ line = line[clearIndex+len(clearCode):]
+ version--
+ offset = 0
+ }
lines = append(lines, line)
}
if err != nil {