You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buildx/vendor/github.com/c-bata/go-prompt
Tonis Tiigi 6e05092055 monitor: add common shell features to dev prompt
This makes the monitor mode from —invoke more
user friendly by enabling features user might expect
from dev shell.

Interactive mode now has colors, history and keyboard
control for movement (arrows, moving to beginning/end,
by word, emacs controls etc).

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
3 years ago
..
internal vendor prompt 3 years ago
.gitignore vendor prompt 3 years ago
CHANGELOG.md vendor prompt 3 years ago
LICENSE vendor prompt 3 years ago
Makefile vendor prompt 3 years ago
README.md vendor prompt 3 years ago
buffer.go vendor prompt 3 years ago
completion.go vendor prompt 3 years ago
document.go vendor prompt 3 years ago
emacs.go vendor prompt 3 years ago
filter.go vendor prompt 3 years ago
history.go vendor prompt 3 years ago
input.go vendor prompt 3 years ago
input_posix.go vendor prompt 3 years ago
input_windows.go vendor prompt 3 years ago
key.go vendor prompt 3 years ago
key_bind.go vendor prompt 3 years ago
key_bind_func.go vendor prompt 3 years ago
key_string.go vendor prompt 3 years ago
option.go vendor prompt 3 years ago
output.go vendor prompt 3 years ago
output_posix.go vendor prompt 3 years ago
output_vt100.go monitor: add common shell features to dev prompt 3 years ago
output_windows.go vendor prompt 3 years ago
prompt.go vendor prompt 3 years ago
render.go vendor prompt 3 years ago
shortcut.go vendor prompt 3 years ago
signal_posix.go vendor prompt 3 years ago
signal_windows.go vendor prompt 3 years ago

README.md

go-prompt

Go Report Card Software License GoDoc tests

A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line tools using Go.

package main

import (
	"fmt"
	"github.com/c-bata/go-prompt"
)

func completer(d prompt.Document) []prompt.Suggest {
	s := []prompt.Suggest{
		{Text: "users", Description: "Store the username and age"},
		{Text: "articles", Description: "Store the article text posted by user"},
		{Text: "comments", Description: "Store the text commented to articles"},
	}
	return prompt.FilterHasPrefix(s, d.GetWordBeforeCursor(), true)
}

func main() {
	fmt.Println("Please select table.")
	t := prompt.Input("> ", completer)
	fmt.Println("You selected " + t)
}

Projects using go-prompt

Features

Powerful auto-completion

demo

(This is a GIF animation of kube-prompt.)

Flexible options

go-prompt provides many options. Please check option section of GoDoc for more details.

options

Keyboard Shortcuts

Emacs-like keyboard shortcuts are available by default (these also are the default shortcuts in Bash shell). You can customize and expand these shortcuts.

keyboard shortcuts

Key Binding Description
Ctrl + A Go to the beginning of the line (Home)
Ctrl + E Go to the end of the line (End)
Ctrl + P Previous command (Up arrow)
Ctrl + N Next command (Down arrow)
Ctrl + F Forward one character
Ctrl + B Backward one character
Ctrl + D Delete character under the cursor
Ctrl + H Delete character before the cursor (Backspace)
Ctrl + W Cut the word before the cursor to the clipboard
Ctrl + K Cut the line after the cursor to the clipboard
Ctrl + U Cut the line before the cursor to the clipboard
Ctrl + L Clear the screen

History

You can use Up arrow and Down arrow to walk through the history of commands executed.

History

Multiple platform support

We have confirmed go-prompt works fine in the following terminals:

  • iTerm2 (macOS)
  • Terminal.app (macOS)
  • Command Prompt (Windows)
  • gnome-terminal (Ubuntu)

Author

Masashi Shibata

License

This software is licensed under the MIT license, see LICENSE for more information.