class Reline::ANSI

def self.set_default_key_bindings_ansi_cursor(config)

def self.set_default_key_bindings_ansi_cursor(config)
  ANSI_CURSOR_KEY_BINDINGS.each do |char, (default_func, modifiers)|
    bindings = [["\e[#{char}", default_func]] # CSI + char
    if modifiers[:ctrl]
      # CSI + ctrl_key_modifier + char
      bindings << ["\e[1;5#{char}", modifiers[:ctrl]]
    end
    if modifiers[:meta]
      # CSI + meta_key_modifier + char
      bindings << ["\e[1;3#{char}", modifiers[:meta]]
      # Meta(ESC) + CSI + char
      bindings << ["\e\e[#{char}", modifiers[:meta]]
    end
    bindings.each do |sequence, func|
      key = sequence.bytes
      config.add_default_key_binding_by_keymap(:emacs, key, func)
      config.add_default_key_binding_by_keymap(:vi_insert, key, func)
      config.add_default_key_binding_by_keymap(:vi_command, key, func)
    end
  end
end