diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2016-01-16 18:07:50 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2016-01-16 18:07:50 +0900 |
commit | 8695b5e319e02efbfdf70800dce1c73d40378d86 (patch) | |
tree | cae8b94cbc46c706ecfaf4a7c619ce6e055a807e | |
parent | 95970164ad0f03cd1a95aec2ad3d3cba180c0308 (diff) |
Reduce the initial delay when --tac is not given
fzf defers the initial rendering of the screen up to 100ms if the input
stream is ongoing to prevent unnecessary redraw during the initial
phase. However, 100ms delay is quite noticeable and might give the
impression that fzf is not snappy enough. This commit reduces the
maximum delay down to 20ms when --tac is not specified, in which case
the input list quickly fills the entire screen.
-rw-r--r-- | src/constants.go | 3 | ||||
-rw-r--r-- | src/terminal.go | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/constants.go b/src/constants.go index 0145958c..6f6898d5 100644 --- a/src/constants.go +++ b/src/constants.go @@ -18,7 +18,8 @@ const ( defaultCommand = `find . -path '*/\.*' -prune -o -type f -print -o -type l -print 2> /dev/null | sed s/^..//` // Terminal - initialDelay = 100 * time.Millisecond + initialDelay = 20 * time.Millisecond + initialDelayTac = 100 * time.Millisecond spinnerDuration = 200 * time.Millisecond // Matcher diff --git a/src/terminal.go b/src/terminal.go index ab11587f..e5b247d7 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -22,6 +22,7 @@ import ( // Terminal represents terminal input/output type Terminal struct { + initDelay time.Duration inlineInfo bool prompt string reverse bool @@ -198,7 +199,14 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal { header = reverseStringArray(opts.Header) } _tabStop = opts.Tabstop + var delay time.Duration + if opts.Tac { + delay = initialDelayTac + } else { + delay = initialDelay + } return &Terminal{ + initDelay: delay, inlineInfo: opts.InlineInfo, prompt: opts.Prompt, reverse: opts.Reverse, @@ -751,7 +759,7 @@ func (t *Terminal) Loop() { t.printHeader() t.mutex.Unlock() go func() { - timer := time.NewTimer(initialDelay) + timer := time.NewTimer(t.initDelay) <-timer.C t.reqBox.Set(reqRefresh, nil) }() |