add built-in fzf (queue)

This commit is contained in:
raziman 2020-08-18 11:16:12 +08:00
parent c6e0af6f4a
commit 7b11fda8b1

View File

@ -16,6 +16,7 @@ import (
"github.com/gdamore/tcell" "github.com/gdamore/tcell"
"github.com/rivo/tview" "github.com/rivo/tview"
"github.com/spf13/viper"
"github.com/ztrue/tracerr" "github.com/ztrue/tracerr"
) )
@ -410,12 +411,34 @@ func newQueue() *Queue {
case '/': case '/':
if viper.GetBool("general.fzf") {
gomu.suspend() gomu.suspend()
if err := queue.fuzzyFind(); err != nil { if err := queue.fuzzyFind(); err != nil {
logError(err) logError(err)
} }
gomu.unsuspend() gomu.unsuspend()
return e
}
audios := make([]string, len(queue.items))
for i, file := range queue.items {
audios[i] = file.name
}
searchPopup(audios, func(selected string) {
index := 0
for i, v := range queue.items {
if v.name == selected {
index = i
}
}
queue.SetCurrentItem(index)
})
} }
return nil return nil