Sha256: 386b1cf76c7faeffac68d893a1f7a39689e52a4579f4ef14d84763e8200545ab

Contents?: true

Size: 934 Bytes

Versions: 14

Compression:

Stored size: 934 Bytes

Contents

# frozen_string_literal: true

module Textbringer
  class CompletionListMode < Mode
    define_generic_command :choose_completion

    COMPLETION_LIST_MODE_MAP = Keymap.new
    COMPLETION_LIST_MODE_MAP.define_key("\C-m", :choose_completion_command)

    define_syntax :link, /^.+$/

    def initialize(buffer)
      super(buffer)
      buffer.keymap = COMPLETION_LIST_MODE_MAP
    end

    def choose_completion
      unless Window.echo_area.active?
        raise EditorError, "Minibuffer is not active"
      end
      s = @buffer.save_excursion {
        @buffer.beginning_of_line
        @buffer.looking_at?(/.*/)
        @buffer.match_string(0)
      }
      if s.size > 0
        Window.current = Window.echo_area
        complete_minibuffer_with_string(s)
        if COMPLETION[:original_buffer]
          COMPLETION[:completions_window].buffer =
            COMPLETION[:original_buffer]
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
textbringer-1.0.0 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.3.2 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.3.1 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.3.0 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.9 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.8 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.7 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.6 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.4 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.5 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.3 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.2 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.1 lib/textbringer/modes/completion_list_mode.rb
textbringer-0.2.0 lib/textbringer/modes/completion_list_mode.rb