class Reline::Core
Constants
- ATTR_READER_NAMES
- DialogProc
Attributes
config
[RW]
key_stroke
[RW]
last_incremental_search
[RW]
line_editor
[RW]
output
[R]
Public Class Methods
new
() { |self| ... }
# File lib/reline.rb, line 67 def initialize self.output = STDOUT @mutex = Mutex.new @dialog_proc_list = {} yield self @completion_quote_character = nil end
Public Instance Methods
add_dialog_proc
(name_sym, p, context = nil)
# File lib/reline.rb, line 161 def add_dialog_proc(name_sym, p, context = nil) raise ArgumentError unless name_sym.instance_of?(Symbol) if p.nil? @dialog_proc_list.delete(name_sym) else raise ArgumentError unless p.respond_to?(:call) @dialog_proc_list[name_sym] = DialogProc.new(p, context) end end
ambiguous_width
()
# File lib/reline.rb, line 409 def ambiguous_width may_req_ambiguous_char_width unless defined? @ambiguous_width @ambiguous_width end
auto_indent_proc=
(p)
# File lib/reline.rb, line 146 def auto_indent_proc=(p) raise ArgumentError unless p.respond_to?(:call) or p.nil? @auto_indent_proc = p end
basic_quote_characters=
(v)
# File lib/reline.rb, line 103 def basic_quote_characters=(v) @basic_quote_characters = v.encode(encoding) end
basic_word_break_characters=
(v)
# File lib/reline.rb, line 95 def basic_word_break_characters=(v) @basic_word_break_characters = v.encode(encoding) end
completer_quote_characters=
(v)
# File lib/reline.rb, line 107 def completer_quote_characters=(v) @completer_quote_characters = v.encode(encoding) end
completer_word_break_characters=
(v)
# File lib/reline.rb, line 99 def completer_word_break_characters=(v) @completer_word_break_characters = v.encode(encoding) end
completion_append_character=
(val)
# File lib/reline.rb, line 83 def completion_append_character=(val) if val.nil? @completion_append_character = nil elsif val.size == 1 @completion_append_character = val.encode(encoding) elsif val.size > 1 @completion_append_character = val[0].encode(encoding) else @completion_append_character = nil end end
completion_case_fold
()
# File lib/reline.rb, line 123 def completion_case_fold @config.completion_ignore_case end
completion_case_fold=
(v)
# File lib/reline.rb, line 119 def completion_case_fold=(v) @config.completion_ignore_case = v end
completion_proc=
(p)
# File lib/reline.rb, line 131 def completion_proc=(p) raise ArgumentError unless p.respond_to?(:call) or p.nil? @completion_proc = p end
completion_quote_character
()
# File lib/reline.rb, line 127 def completion_quote_character @completion_quote_character end
dialog_proc
(name_sym)
# File lib/reline.rb, line 171 def dialog_proc(name_sym) @dialog_proc_list[name_sym] end
dig_perfect_match_proc=
(p)
# File lib/reline.rb, line 155 def dig_perfect_match_proc=(p) raise ArgumentError unless p.respond_to?(:call) or p.nil? @dig_perfect_match_proc = p end
emacs_editing_mode
()
# File lib/reline.rb, line 195 def emacs_editing_mode config.editing_mode = :emacs nil end
emacs_editing_mode?
()
# File lib/reline.rb, line 204 def emacs_editing_mode? config.editing_mode_is?(:emacs) end
encoding
()
# File lib/reline.rb, line 79 def encoding io_gate.encoding end
filename_quote_characters=
(v)
# File lib/reline.rb, line 111 def filename_quote_characters=(v) @filename_quote_characters = v.encode(encoding) end
get_screen_size
()
# File lib/reline.rb, line 208 def get_screen_size io_gate.get_screen_size end
input=
(val)
# File lib/reline.rb, line 175 def input=(val) raise TypeError unless val.respond_to?(:getc) or val.nil? if val.respond_to?(:getc) && io_gate.respond_to?(:input=) io_gate.input = val end end
io_gate
()
# File lib/reline.rb, line 75 def io_gate Reline::IOGate end
output=
(val)
# File lib/reline.rb, line 182 def output=(val) raise TypeError unless val.respond_to?(:write) or val.nil? @output = val if io_gate.respond_to?(:output=) io_gate.output = val end end
output_modifier_proc=
(p)
# File lib/reline.rb, line 136 def output_modifier_proc=(p) raise ArgumentError unless p.respond_to?(:call) or p.nil? @output_modifier_proc = p end
pre_input_hook=
(p)
# File lib/reline.rb, line 151 def pre_input_hook=(p) @pre_input_hook = p end
prompt_proc=
(p)
# File lib/reline.rb, line 141 def prompt_proc=(p) raise ArgumentError unless p.respond_to?(:call) or p.nil? @prompt_proc = p end
readline
(prompt = '', add_hist = false)
# File lib/reline.rb, line 277 def readline(prompt = '', add_hist = false) @mutex.synchronize do io_gate.with_raw_input do inner_readline(prompt, add_hist, false) end line = line_editor.line.dup line.taint if RUBY_VERSION < '2.7' if add_hist and line and line.chomp("\n").size > 0 Reline::HISTORY << line.chomp("\n") end line_editor.reset_line if line_editor.line.nil? line end end
readmultiline
(prompt = '', add_hist = false, &confirm_multiline_termination)
# File lib/reline.rb, line 251 def readmultiline(prompt = '', add_hist = false, &confirm_multiline_termination) @mutex.synchronize do unless confirm_multiline_termination raise ArgumentError.new('#readmultiline needs block to confirm multiline termination') end io_gate.with_raw_input do inner_readline(prompt, add_hist, true, &confirm_multiline_termination) end whole_buffer = line_editor.whole_buffer.dup whole_buffer.taint if RUBY_VERSION < '2.7' if add_hist and whole_buffer and whole_buffer.chomp("\n").size > 0 Reline::HISTORY << whole_buffer end if line_editor.eof? line_editor.reset_line # Return nil if the input is aborted by C-d. nil else whole_buffer end end end
special_prefixes=
(v)
# File lib/reline.rb, line 115 def special_prefixes=(v) @special_prefixes = v.encode(encoding) end
vi_editing_mode
()
# File lib/reline.rb, line 190 def vi_editing_mode config.editing_mode = :vi_insert nil end
vi_editing_mode?
()
# File lib/reline.rb, line 200 def vi_editing_mode? config.editing_mode_is?(:vi_insert, :vi_command) end