go-prompt/main.go

62 lines
2.0 KiB
Go

package main
import (
"fmt"
"github.com/c-bata/go-prompt-toolkit/prompt"
)
func executor(b *prompt.Buffer) string {
r := "Your input: " + b.Text()
return r
}
func completer(b *prompt.Buffer) []string {
if w := b.Document().GetWordBeforeCursor(); w == "" {
return []string{}
} else {
if []rune(w)[0] == []rune("s")[0] {
return []string{"select"}
} else if []rune(w)[0] == []rune("w")[0] {
return []string{"where"}
} else if []rune(w)[0] == []rune("d")[0] {
return []string{"drop", "delete"}
} else if []rune(w)[0] == []rune("f")[0] {
return []string{"from"}
}
}
return []string{
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
"aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff",
}
}
func main() {
pt := prompt.NewPrompt(
executor,
completer,
prompt.MaxCompletionsOption(8),
prompt.PrefixOption(">>> "),
prompt.PrefixColorOption(prompt.Blue),
prompt.TitleOption("SQLITE CLI"),
prompt.CompletionTextColor(prompt.Black),
prompt.SelectedCompletionTextColor(prompt.White),
)
defer fmt.Println("\nGoodbye!")
fmt.Print("Hello! This is a example appication using prompt-toolkit.\n")
pt.Run()
}