Linenoise Ruby
Introduction
The Linenoise gem is a wrapper around the small self-contained alternative to Readline and Libedit called Linenoise.
Features
- History support
- Completion
- Hints (suggestions at the right of the prompt as you type)
- Single and multiline editing mode with the usual key bindings
Installation
Bundler
Add the Linenoise gem to your Gemfile:
gem 'linenoise', '~> 1.1'
Manual
Invoke the following command from your terminal:
gem install linenoise
Examples
Basic example
require 'linenoise'
while buf = Linenoise.linenoise('> ')
p buf
end
Completion
require 'linenoise'
LIST = %w[
search download open help history quit url next clear prev past
].freeze
Linenoise.completion_proc = proc do |input|
LIST.grep(/\A#{Regexp.escape(input)}/)
end
while line = Linenoise.linenoise('> ')
p line
end
Hints
require 'linenoise'
Linenoise.hint_proc = proc do |input|
case input
when /git show/
' [<options>] [<object>...]'
when /git log/
' [<options>] [<revision range>]'
else
' --help'
end
end
while line = Linenoise.linenoise('> ')
p line
end
More examples and full API explanation is available on the documentation page.
Development
Running tests
bundle exec rake compile spec
Launching development console
bundle exec rake compile console
Contact
In case you have a problem, question or a bug report, feel free to:
- file an issue
- send me an email (see https://github.com/kyrylo)
- tweet at me
License
The project uses the MIT License. See LICENSE.md for details.