• Stars
    star
    5,254
  • Rank 7,867 (Top 0.2 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.

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)

Links

Author

Masashi Shibata

License

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

More Repositories

1

kube-prompt

An interactive kubernetes client featuring auto-complete.
Go
1,785
star
2

goptuna

A hyperparameter optimization framework, inspired by Optuna.
Go
256
star
3

rtmp

Server implementation of Adobe's RTMP 1.0 protocol in Go.
Go
138
star
4

practical-django

書籍「実践Django Pythonによる本格Webアプリケーション開発 (翔泳社)」サンプルコード
Python
108
star
5

gh-prompt

An interactive GitHub CLI featuring auto-complete.
Go
54
star
6

pysearch

Web crawler and Search engine in Python.
Python
51
star
7

outlier-utils

Utility library for detecting and removing outliers from normally distributed datasets using the Smirnov-Grubbs test.
Python
50
star
8

systracer

Yet another system call tracer written in Go.
Go
45
star
9

pandas-validator

Validation Library for pandas' DataFrame and Series.
Python
44
star
10

jpandas

Implementation of Pandas (Python Data Analysis Library) on java.
Java
44
star
11

react-native-focus-scroll

React Native Library to detect children that are focused on ScrollView.
JavaScript
38
star
12

chalice-linebot

LINE BOT on AWS Lambda + API Gateway built with Chalice
Python
31
star
13

django-auth-example

Sample project for my talk at DjangoCongress JP 2018.
Python
26
star
14

db_tutorial

Writing a sqlite clone from scratch in Rust (and Python3 for testing). Thanks @cstack !
Rust
26
star
15

webframework-in-python

"How to develop WSGI WEB Framework" talked at PyConJP 2016
Python
25
star
16

xpcap

Cross-platform Packet Capture which supports Linux and macOS(BSD) in 1000 LOC without depending on libpcap.
C
25
star
17

datascience-notebook

Data Science Notebooks in Python3 (ja)
Jupyter Notebook
21
star
18

feedy

RSS Feed Fetching Framework for Python
Python
20
star
19

gosearch

Web crawler and Search engine in Golang.
Go
18
star
20

concurrency-in-python

Tutorial of concurrency in Python3 (Multi-threading, Multi-processing, Asynchronous programming)
Python
15
star
21

sample-c2goasm

Calling C functions optimized by LLVM Auto-Vectorization after converting to Go Plan9 Assembly using c2goasm.
Assembly
15
star
22

comet

Desktop application for displaying the hashtag tweets when you talk at a conference.
JavaScript
13
star
23

TDD-with-Django

QiitaのDjango入門をTDDで書いてみる
Python
8
star
24

mypyc_ipython

IPython magic command interface for interactive work with mypyc, a compiler from type-annotated Python to C extensions.
Python
7
star
25

ng2-card

NOT MAINTAINED: Card view component for angular2
TypeScript
7
star
26

goptuna-isucon9q

Applying bayesian optimization to the parameters of MySQL, Nginx and Go web applications.
Go
7
star
27

go-neural-network

WIP: Neural Network Implementation for Golang.
Go
6
star
28

django-httpbench

HTTP load testing tools for Django. Like an apache bench but requests are sent from authenticated users.
Python
5
star
29

google-translate-po

Auto-input po-style translation files using Google Translate API.
Python
5
star
30

goptuna-bayesopt

Goptuna sampler for Gaussian Process based bayesian optimization using d4l3k/go-bayesopt.
Go
4
star
31

django-api-practices

Sample source code for my talk at PyConJP 2018.
Python
4
star
32

c-bata.github.io

This repository is my portfolio web site.
HTML
4
star
33

benchmark-warm-starting-cmaes

Benchmark code for Warm Starting CMA-ES (PR: https://github.com/optuna/optuna/pull/2307)
Python
4
star
34

github-actions-kurobako

GitHub Action to generate kurobako report and comment it to the pull request.
Python
4
star
35

sandbox-atcoder

C++
3
star
36

c-bata

README for @c-bata
3
star
37

mdnote

Markdown editor with React.js, Babel and Electron.
JavaScript
3
star
38

django-unsecure-examples

Django projects to reproduce CSRF, XSS, SQL injection and Clickjacking.
Python
3
star
39

lambda-thumbnail-generator

Generating Thumbnail from S3 using AWS Lambda, Python2 and Pillow
Python
3
star
40

akashipy

兵庫県明石市で開催している Python勉強会 #akashipy の資料やソースコード
2
star
41

optuna-memorydump

Dump Optuna in-memory storage to RDB storage. This tool ensures idempotence and thread-safe.
Python
2
star
42

pym

NOT MAINTAINED. Please use python-build (See https://github.com/yyuu/pyenv/tree/master/plugins/python-build)
Shell
2
star
43

onnx-remove-random-normal

Automatically replace ONNX's RandomNormal node with Constant node.
Python
2
star
44

django-pygments-renderer

Provides functionality for syntax highlighting using Pygments.
Python
2
star
45

go-actions

[Deprecated] I recommend you to use JavaScript to write the custom Github actions now.
Go
2
star
46

rexecute

Re-execute a command when specified files are modified.
Makefile
1
star
47

katib-goptuna-example

An example project to run Goptuna based CMA-ES suggestion service on Katib for https://github.com/kubeflow/katib/pull/1131
Python
1
star
48

mkdocs-term-validator

mkdocs port of https://github.com/shimizukawa/sphinx-term-validator
Python
1
star
49

awesome-python-webapps

A curated list of awesome python web development libraries.
1
star
50

mlcamp-adult-competition

Python
1
star
51

JavaPaint

Java+Swingでお絵かきソフト
Java
1
star
52

talks

WIP: slide viewer for my talk.
HTML
1
star
53

django-label-tag-attr

Add css classes and html tag attributes to django form's label.
Python
1
star
54

Algorithm

アルゴリズムやデータ構造の考え方 & ソースコードをメモ
C
1
star