Module: Reline
- Extended by:
- Forwardable, SingleForwardable
- Defined in:
- lib/reline.rb,
lib/reline/version.rb
Defined Under Namespace
Modules: KeyActor, Terminfo
Classes: ANSI, Config, ConfigEncodingConversionError, Core, CursorPos, DialogRenderInfo, Face, GeneralIO, History, Key, KeyStroke, KillRing, LineEditor, Unicode, Windows
Constant Summary
collapse
- FILENAME_COMPLETION_PROC =
NOTE: For making compatible with the rb-readline gem
nil
- USERNAME_COMPLETION_PROC =
nil
- DEFAULT_DIALOG_PROC_AUTOCOMPLETE =
->() {
return nil unless config.autocompletion
if just_cursor_moving and completion_journey_data.nil?
return nil
end
pre, target, post = retrieve_completion_block(true)
if target.nil? or target.empty? or (completion_journey_data&.pointer == -1 and target.size <= 3)
return nil
end
if completion_journey_data and completion_journey_data.list
result = completion_journey_data.list.dup
result.shift
pointer = completion_journey_data.pointer - 1
else
result = call_completion_proc_with_checking_args(pre, target, post)
pointer = nil
end
if result and result.size == 1 and result[0] == target and pointer != 0
result = nil
end
target_width = Reline::Unicode.calculate_width(target)
x = cursor_pos.x - target_width
if x < 0
x = screen_width + x
y = -1
else
y = 0
end
cursor_pos_to_render = Reline::CursorPos.new(x, y)
if context and context.is_a?(Array)
context.clear
context.push(cursor_pos_to_render, result, pointer, dialog)
end
dialog.pointer = pointer
DialogRenderInfo.new(
pos: cursor_pos_to_render,
contents: result,
scrollbar: true,
height: [15, preferred_dialog_height].min,
face: :completion_dialog
)
}
- DEFAULT_DIALOG_CONTEXT =
Array.new
- IOGate =
if tty
require 'reline/ansi'
Reline::ANSI
else
io
end
- HISTORY =
Reline::History.new(Reline.core.config)
- VERSION =
'0.4.0'
Class Method Summary
collapse
Class Method Details
.core ⇒ Object
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
# File 'lib/reline.rb', line 550
def self.core
@core ||= Core.new { |core|
core.config = Reline::Config.new
core.key_stroke = Reline::KeyStroke.new(core.config)
core.line_editor = Reline::LineEditor.new(core.config, core.encoding)
core.basic_word_break_characters = " \t\n`><=;|&{("
core.completer_word_break_characters = " \t\n`><=;|&{("
core.basic_quote_characters = '"\''
core.completer_quote_characters = '"\''
core.filename_quote_characters = ""
core.special_prefixes = ""
core.add_dialog_proc(:autocomplete, Reline::DEFAULT_DIALOG_PROC_AUTOCOMPLETE, Reline::DEFAULT_DIALOG_CONTEXT)
}
end
|
.encoding_system_needs ⇒ Object
546
547
548
|
# File 'lib/reline.rb', line 546
def self.encoding_system_needs
self.core.encoding
end
|
.insert_text(*args, &block) ⇒ Object
527
528
529
530
|
# File 'lib/reline.rb', line 527
def self.insert_text(*args, &block)
line_editor.insert_text(*args, &block)
self
end
|
.line_editor ⇒ Object
570
571
572
|
# File 'lib/reline.rb', line 570
def self.line_editor
core.line_editor
end
|
.ungetc(c) ⇒ Object
566
567
568
|
# File 'lib/reline.rb', line 566
def self.ungetc(c)
core.io_gate.ungetc(c)
end
|
.update_iogate ⇒ Object
574
575
576
577
578
579
580
581
582
583
584
|
# File 'lib/reline.rb', line 574
def self.update_iogate
return if core.config.test_mode
if ENV['TERM'] != 'dumb' && core.io_gate == Reline::GeneralIO && $stdout.tty?
require 'reline/ansi'
remove_const(:IOGate)
const_set(:IOGate, Reline::ANSI)
end
end
|