lib/reline/config.rb in reline-0.3.1 vs lib/reline/config.rb in reline-0.3.2

- old
+ new

@@ -43,20 +43,23 @@ VARIABLE_NAME_SYMBOLS = VARIABLE_NAMES.map { |v| :"#{v.tr(?-, ?_)}" } VARIABLE_NAME_SYMBOLS.each do |v| attr_accessor v end + attr_accessor :autocompletion + def initialize @additional_key_bindings = {} # from inputrc @additional_key_bindings[:emacs] = {} @additional_key_bindings[:vi_insert] = {} @additional_key_bindings[:vi_command] = {} @oneshot_key_bindings = {} @skip_section = nil @if_stack = nil @editing_mode_label = :emacs @keymap_label = :emacs + @keymap_prefix = [] @key_actors = {} @key_actors[:emacs] = Reline::KeyActor::Emacs.new @key_actors[:vi_insert] = Reline::KeyActor::ViInsert.new @key_actors[:vi_command] = Reline::KeyActor::ViCommand.new @vi_cmd_mode_string = '(cmd)' @@ -91,18 +94,10 @@ def editing_mode_is?(*val) (val.respond_to?(:any?) ? val : [val]).any?(@editing_mode_label) end - def autocompletion=(val) - @autocompletion = val - end - - def autocompletion - @autocompletion - end - def keymap @key_actors[@keymap_label] end def inputrc_path @@ -219,11 +214,11 @@ next when /\s*("#{KEYSEQ_PATTERN}+")\s*:\s*(.*)\s*$/o key, func_name = $1, $2 keystroke, func = bind_key(key, func_name) next unless keystroke - @additional_key_bindings[@keymap_label][keystroke] = func + @additional_key_bindings[@keymap_label][@keymap_prefix + keystroke] = func end end unless @if_stack.empty? raise InvalidInputrc, "#{file}:#{@if_stack.last[1]}: unclosed if" end @@ -290,21 +285,32 @@ when 'editing-mode' case value when 'emacs' @editing_mode_label = :emacs @keymap_label = :emacs + @keymap_prefix = [] when 'vi' @editing_mode_label = :vi_insert @keymap_label = :vi_insert + @keymap_prefix = [] end when 'keymap' case value - when 'emacs', 'emacs-standard', 'emacs-meta', 'emacs-ctlx' + when 'emacs', 'emacs-standard' @keymap_label = :emacs + @keymap_prefix = [] + when 'emacs-ctlx' + @keymap_label = :emacs + @keymap_prefix = [?\C-x.ord] + when 'emacs-meta' + @keymap_label = :emacs + @keymap_prefix = [?\e.ord] when 'vi', 'vi-move', 'vi-command' @keymap_label = :vi_command + @keymap_prefix = [] when 'vi-insert' @keymap_label = :vi_insert + @keymap_prefix = [] end when 'keyseq-timeout' @keyseq_timeout = value.to_i when 'show-mode-in-prompt' case value