mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-28 16:02:01 +03:00
use tcell via porting over code from awesome-gocui
This commit is contained in:
46
vendor/github.com/jesseduffield/gocui/loader.go
generated
vendored
Normal file
46
vendor/github.com/jesseduffield/gocui/loader.go
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
package gocui
|
||||
|
||||
import "time"
|
||||
|
||||
func (g *Gui) loaderTick() {
|
||||
go func() {
|
||||
for range time.Tick(time.Millisecond * 50) {
|
||||
for _, view := range g.Views() {
|
||||
if view.HasLoader {
|
||||
g.userEvents <- userEvent{func(g *Gui) error { return nil }}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func (v *View) loaderLines() [][]cell {
|
||||
duplicate := make([][]cell, len(v.lines))
|
||||
for i := range v.lines {
|
||||
if i < len(v.lines)-1 {
|
||||
duplicate[i] = make([]cell, len(v.lines[i]))
|
||||
copy(duplicate[i], v.lines[i])
|
||||
} else {
|
||||
duplicate[i] = make([]cell, len(v.lines[i])+2)
|
||||
copy(duplicate[i], v.lines[i])
|
||||
duplicate[i][len(duplicate[i])-2] = cell{chr: ' '}
|
||||
duplicate[i][len(duplicate[i])-1] = Loader()
|
||||
}
|
||||
}
|
||||
|
||||
return duplicate
|
||||
}
|
||||
|
||||
// Loader can show a loading animation
|
||||
func Loader() cell {
|
||||
characters := "|/-\\"
|
||||
now := time.Now()
|
||||
nanos := now.UnixNano()
|
||||
index := nanos / 50000000 % int64(len(characters))
|
||||
str := characters[index : index+1]
|
||||
chr := []rune(str)[0]
|
||||
return cell{
|
||||
chr: chr,
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user