X7ROOT File Manager
Current Path:
/opt/alt/ruby30/share/ruby/reline
opt
/
alt
/
ruby30
/
share
/
ruby
/
reline
/
ðŸ“
..
📄
ansi.rb
(6.13 KB)
📄
config.rb
(8.66 KB)
📄
general_io.rb
(1.23 KB)
📄
history.rb
(1.87 KB)
ðŸ“
key_actor
📄
key_actor.rb
(169 B)
📄
key_stroke.rb
(1.22 KB)
📄
kill_ring.rb
(2.39 KB)
📄
line_editor.rb
(90.82 KB)
ðŸ“
unicode
📄
unicode.rb
(19.58 KB)
📄
version.rb
(38 B)
📄
windows.rb
(10.38 KB)
Editing: key_stroke.rb
class Reline::KeyStroke using Module.new { refine Array do def start_with?(other) other.size <= size && other == self.take(other.size) end def bytes self end end } def initialize(config) @config = config end def match_status(input) key_mapping.keys.select { |lhs| lhs.start_with? input }.tap { |it| return :matched if it.size == 1 && (it.max_by(&:size)&.size&.== input.size) return :matching if it.size == 1 && (it.max_by(&:size)&.size&.!= input.size) return :matched if it.max_by(&:size)&.size&.< input.size return :matching if it.size > 1 } key_mapping.keys.select { |lhs| input.start_with? lhs }.tap { |it| return it.size > 0 ? :matched : :unmatched } end def expand(input) lhs = key_mapping.keys.select { |item| input.start_with? item }.sort_by(&:size).reverse.first return input unless lhs rhs = key_mapping[lhs] case rhs when String rhs_bytes = rhs.bytes expand(expand(rhs_bytes) + expand(input.drop(lhs.size))) when Symbol [rhs] + expand(input.drop(lhs.size)) when Array rhs end end private def key_mapping @config.key_bindings end end
Upload File
Create Folder