Class: Reline::Core
Defined Under Namespace
Classes: DialogProc
Constant Summary
collapse
- ATTR_READER_NAMES =
%i(
completion_append_character
basic_word_break_characters
completer_word_break_characters
basic_quote_characters
completer_quote_characters
filename_quote_characters
special_prefixes
completion_proc
output_modifier_proc
prompt_proc
auto_indent_proc
pre_input_hook
dig_perfect_match_proc
).each(&method(:attr_reader))
Constants included
from Forwardable
Forwardable::FORWARDABLE_VERSION, Forwardable::VERSION
Instance Attribute Summary collapse
Instance Method Summary
collapse
_compile_method, _delegator_method, _valid_method?, def_instance_delegator, def_instance_delegators, instance_delegate
Constructor Details
#initialize {|_self| ... } ⇒ Core
Returns a new instance of Core.
76
77
78
79
80
81
82
|
# File 'lib/reline.rb', line 76
def initialize
self.output = STDOUT
@dialog_proc_list = {}
yield self
@completion_quote_character = nil
@bracketed_paste_finished = false
end
|
Instance Attribute Details
Returns the value of attribute config.
65
66
67
|
# File 'lib/reline.rb', line 65
def config
@config
end
|
#key_stroke ⇒ Object
Returns the value of attribute key_stroke.
66
67
68
|
# File 'lib/reline.rb', line 66
def key_stroke
@key_stroke
end
|
#last_incremental_search ⇒ Object
Returns the value of attribute last_incremental_search.
68
69
70
|
# File 'lib/reline.rb', line 68
def last_incremental_search
@last_incremental_search
end
|
#line_editor ⇒ Object
Returns the value of attribute line_editor.
67
68
69
|
# File 'lib/reline.rb', line 67
def line_editor
@line_editor
end
|
Returns the value of attribute output.
69
70
71
|
# File 'lib/reline.rb', line 69
def output
@output
end
|
Instance Method Details
#add_dialog_proc(name_sym, p, context = nil) ⇒ Object
170
171
172
173
174
175
176
177
178
|
# File 'lib/reline.rb', line 170
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 ⇒ Object
473
474
475
476
|
# File 'lib/reline.rb', line 473
def ambiguous_width
may_req_ambiguous_char_width unless defined? @ambiguous_width
@ambiguous_width
end
|
#auto_indent_proc=(p) ⇒ Object
155
156
157
158
|
# File 'lib/reline.rb', line 155
def auto_indent_proc=(p)
raise ArgumentError unless p.respond_to?(:call) or p.nil?
@auto_indent_proc = p
end
|
#basic_quote_characters=(v) ⇒ Object
112
113
114
|
# File 'lib/reline.rb', line 112
def basic_quote_characters=(v)
@basic_quote_characters = v.encode(encoding)
end
|
#basic_word_break_characters=(v) ⇒ Object
104
105
106
|
# File 'lib/reline.rb', line 104
def basic_word_break_characters=(v)
@basic_word_break_characters = v.encode(encoding)
end
|
#completer_quote_characters=(v) ⇒ Object
116
117
118
|
# File 'lib/reline.rb', line 116
def completer_quote_characters=(v)
@completer_quote_characters = v.encode(encoding)
end
|
#completer_word_break_characters=(v) ⇒ Object
108
109
110
|
# File 'lib/reline.rb', line 108
def completer_word_break_characters=(v)
@completer_word_break_characters = v.encode(encoding)
end
|
#completion_append_character=(val) ⇒ Object
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/reline.rb', line 92
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 ⇒ Object
132
133
134
|
# File 'lib/reline.rb', line 132
def completion_case_fold
@config.completion_ignore_case
end
|
#completion_case_fold=(v) ⇒ Object
128
129
130
|
# File 'lib/reline.rb', line 128
def completion_case_fold=(v)
@config.completion_ignore_case = v
end
|
#completion_proc=(p) ⇒ Object
140
141
142
143
|
# File 'lib/reline.rb', line 140
def completion_proc=(p)
raise ArgumentError unless p.respond_to?(:call) or p.nil?
@completion_proc = p
end
|
#completion_quote_character ⇒ Object
136
137
138
|
# File 'lib/reline.rb', line 136
def completion_quote_character
@completion_quote_character
end
|
#dialog_proc(name_sym) ⇒ Object
180
181
182
|
# File 'lib/reline.rb', line 180
def dialog_proc(name_sym)
@dialog_proc_list[name_sym]
end
|
#dig_perfect_match_proc=(p) ⇒ Object
164
165
166
167
|
# File 'lib/reline.rb', line 164
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 ⇒ Object
204
205
206
207
|
# File 'lib/reline.rb', line 204
def emacs_editing_mode
config.editing_mode = :emacs
nil
end
|
#emacs_editing_mode? ⇒ Boolean
213
214
215
|
# File 'lib/reline.rb', line 213
def emacs_editing_mode?
config.editing_mode_is?(:emacs)
end
|
88
89
90
|
# File 'lib/reline.rb', line 88
def encoding
io_gate.encoding
end
|
#filename_quote_characters=(v) ⇒ Object
120
121
122
|
# File 'lib/reline.rb', line 120
def filename_quote_characters=(v)
@filename_quote_characters = v.encode(encoding)
end
|
#get_screen_size ⇒ Object
217
218
219
|
# File 'lib/reline.rb', line 217
def get_screen_size
io_gate.get_screen_size
end
|
184
185
186
187
188
189
|
# File 'lib/reline.rb', line 184
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
|
84
85
86
|
# File 'lib/reline.rb', line 84
def io_gate
Reline::IOGate
end
|
#output_modifier_proc=(p) ⇒ Object
145
146
147
148
|
# File 'lib/reline.rb', line 145
def output_modifier_proc=(p)
raise ArgumentError unless p.respond_to?(:call) or p.nil?
@output_modifier_proc = p
end
|
160
161
162
|
# File 'lib/reline.rb', line 160
def pre_input_hook=(p)
@pre_input_hook = p
end
|
#prompt_proc=(p) ⇒ Object
150
151
152
153
|
# File 'lib/reline.rb', line 150
def prompt_proc=(p)
raise ArgumentError unless p.respond_to?(:call) or p.nil?
@prompt_proc = p
end
|
#readline(prompt = '', add_hist = false) ⇒ Object
286
287
288
289
290
291
292
293
294
295
296
297
298
|
# File 'lib/reline.rb', line 286
def readline(prompt = '', add_hist = false)
Reline.update_iogate
inner_readline(prompt, add_hist, false)
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
|
#readmultiline(prompt = '', add_hist = false, &confirm_multiline_termination) ⇒ Object
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
# File 'lib/reline.rb', line 267
def readmultiline(prompt = '', add_hist = false, &confirm_multiline_termination)
Reline.update_iogate
io_gate.with_raw_input do
unless confirm_multiline_termination
raise ArgumentError.new('#readmultiline needs block to confirm multiline termination')
end
inner_readline(prompt, add_hist, true, &confirm_multiline_termination)
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
line_editor.reset_line if line_editor.whole_buffer.nil?
whole_buffer
end
end
|
#special_prefixes=(v) ⇒ Object
124
125
126
|
# File 'lib/reline.rb', line 124
def special_prefixes=(v)
@special_prefixes = v.encode(encoding)
end
|
#vi_editing_mode ⇒ Object
199
200
201
202
|
# File 'lib/reline.rb', line 199
def vi_editing_mode
config.editing_mode = :vi_insert
nil
end
|
#vi_editing_mode? ⇒ Boolean
209
210
211
|
# File 'lib/reline.rb', line 209
def vi_editing_mode?
config.editing_mode_is?(:vi_insert, :vi_command)
end
|