summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2020-01-15 10:43:09 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2020-01-15 10:43:09 +0900
commit6e3af646b2e39c510a70c26f7a77c87e691e577c (patch)
tree905b743d0121a2e48c05a93a59a87b6541413f57 /src
parent82bf8c138daaabf28faf7819b2f5a2b03af37d43 (diff)
downloadfzf-6e3af646b2e39c510a70c26f7a77c87e691e577c.tar.gz
Draw spinner with Unicode characters
Diffstat (limited to 'src')
-rw-r--r--src/constants.go2
-rw-r--r--src/terminal.go12
2 files changed, 9 insertions, 5 deletions
diff --git a/src/constants.go b/src/constants.go
index 5b85d8af..c568932d 100644
--- a/src/constants.go
+++ b/src/constants.go
@@ -25,7 +25,7 @@ const (
// Terminal
initialDelay = 20 * time.Millisecond
initialDelayTac = 100 * time.Millisecond
- spinnerDuration = 200 * time.Millisecond
+ spinnerDuration = 100 * time.Millisecond
previewCancelWait = 500 * time.Millisecond
maxPatternLength = 300
maxMulti = math.MaxInt32
diff --git a/src/terminal.go b/src/terminal.go
index 9a72d08d..f31ed1ef 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -61,6 +61,7 @@ var emptyLine = itemLine{}
type Terminal struct {
initDelay time.Duration
infoStyle infoStyle
+ spinner []string
prompt string
promptLen int
queryLen [2]int
@@ -145,8 +146,6 @@ func (a byTimeOrder) Less(i, j int) bool {
return a[i].at.Before(a[j].at)
}
-var _spinner = []string{`-`, `\`, `|`, `/`, `-`, `\`, `|`, `/`}
-
const (
reqPrompt util.EventType = iota
reqInfo
@@ -380,9 +379,14 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
wordRubout = fmt.Sprintf("%s[^%s]", sep, sep)
wordNext = fmt.Sprintf("[^%s]%s|(.$)", sep, sep)
}
+ spinner := []string{`⠋`, `⠙`, `⠹`, `⠸`, `⠼`, `⠴`, `⠦`, `⠧`, `⠇`, `⠏`}
+ if !opts.Unicode {
+ spinner = []string{`-`, `\`, `|`, `/`, `-`, `\`, `|`, `/`}
+ }
t := Terminal{
initDelay: delay,
infoStyle: opts.InfoStyle,
+ spinner: spinner,
queryLen: [2]int{0, 0},
layout: opts.Layout,
fullscreen: fullscreen,
@@ -744,8 +748,8 @@ func (t *Terminal) printInfo() {
t.move(1, 0, true)
if t.reading {
duration := int64(spinnerDuration)
- idx := (time.Now().UnixNano() % (duration * int64(len(_spinner)))) / duration
- t.window.CPrint(tui.ColSpinner, t.strong, _spinner[idx])
+ idx := (time.Now().UnixNano() % (duration * int64(len(t.spinner)))) / duration
+ t.window.CPrint(tui.ColSpinner, t.strong, t.spinner[idx])
}
t.move(1, 2, false)
pos = 2