diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2020-10-18 17:03:33 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-18 17:03:33 +0900 |
| commit | faf68dbc5cc52201d0962f73baa5a049528b913c (patch) | |
| tree | 12aaf9aa85163a8f140345d178b836d40e09342b /src/tui | |
| parent | 305896fcb3b76c5ea94401f6cce74f0f287e8f21 (diff) | |
| download | fzf-faf68dbc5cc52201d0962f73baa5a049528b913c.tar.gz | |
Implement streaming preview window (#2215)
Fix #2212
# Will start rendering after 200ms, update every 100ms
fzf --preview 'for i in $(seq 100); do echo $i; sleep 0.01; done'
# Should print "Loading .." message after 500ms
fzf --preview 'sleep 1; for i in $(seq 100); do echo $i; sleep 0.01; done'
# The first line should appear after 200ms
fzf --preview 'date; sleep 2; date'
# Should not render before enough lines for the scroll offset are ready
rg --line-number --no-heading --color=always ^ |
fzf --delimiter : --ansi --preview-window '+{2}-/2' \
--preview 'sleep 1; bat --style=numbers --color=always --pager=never --highlight-line={2} {1}'
Diffstat (limited to 'src/tui')
| -rw-r--r-- | src/tui/dummy.go | 7 | ||||
| -rw-r--r-- | src/tui/light.go | 4 | ||||
| -rw-r--r-- | src/tui/tcell.go | 4 | ||||
| -rw-r--r-- | src/tui/tui.go | 1 |
4 files changed, 3 insertions, 13 deletions
diff --git a/src/tui/dummy.go b/src/tui/dummy.go index 8fce77e5..a6df8550 100644 --- a/src/tui/dummy.go +++ b/src/tui/dummy.go @@ -32,10 +32,9 @@ func (r *FullscreenRenderer) Clear() {} func (r *FullscreenRenderer) Refresh() {} func (r *FullscreenRenderer) Close() {} -func (r *FullscreenRenderer) DoesAutoWrap() bool { return false } -func (r *FullscreenRenderer) GetChar() Event { return Event{} } -func (r *FullscreenRenderer) MaxX() int { return 0 } -func (r *FullscreenRenderer) MaxY() int { return 0 } +func (r *FullscreenRenderer) GetChar() Event { return Event{} } +func (r *FullscreenRenderer) MaxX() int { return 0 } +func (r *FullscreenRenderer) MaxY() int { return 0 } func (r *FullscreenRenderer) RefreshWindows(windows []Window) {} diff --git a/src/tui/light.go b/src/tui/light.go index 9af19b83..3062ab45 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -624,10 +624,6 @@ func (r *LightRenderer) MaxY() int { return r.height } -func (r *LightRenderer) DoesAutoWrap() bool { - return false -} - func (r *LightRenderer) NewWindow(top int, left int, width int, height int, preview bool, borderStyle BorderStyle) Window { w := &LightWindow{ renderer: r, diff --git a/src/tui/tcell.go b/src/tui/tcell.go index 4d8096d3..a4c599bb 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -166,10 +166,6 @@ func (w *TcellWindow) Y() int { return w.lastY } -func (r *FullscreenRenderer) DoesAutoWrap() bool { - return false -} - func (r *FullscreenRenderer) Clear() { _screen.Sync() _screen.Clear() diff --git a/src/tui/tui.go b/src/tui/tui.go index 3ed794f7..146aafac 100644 --- a/src/tui/tui.go +++ b/src/tui/tui.go @@ -286,7 +286,6 @@ type Renderer interface { MaxX() int MaxY() int - DoesAutoWrap() bool NewWindow(top int, left int, width int, height int, preview bool, borderStyle BorderStyle) Window } |
