class Reline::KeyStroke
def expand(input)
def expand(input) lhs = key_mapping.keys.select { |item| start_with?(input, item) }.sort_by(&:size).last unless lhs status, size = match_unknown_escape_sequence(input) case status when :matched return [:ed_unassigned] + expand(input.drop(size)) when :matching return [:ed_unassigned] else return input end end 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