Method: Textbringer::InputMethod#with_target_buffer

Defined in:
lib/textbringer/input_method.rb

#with_target_buffer(&block) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/textbringer/input_method.rb', line 63

def with_target_buffer(&block)
  if isearch_mode?
    @isearch_buffer ||= Buffer.new
    if @isearch_buffer.to_s != ISEARCH_STATUS[:string]
      @isearch_buffer.replace(ISEARCH_STATUS[:string])
    end
    @isearch_buffer.modified = false
    begin
      block.call(@isearch_buffer)
    ensure
      ISEARCH_STATUS[:string] = @isearch_buffer.to_s
      isearch_search if @isearch_buffer.modified?
      if Buffer.current != Buffer.minibuffer
        message(isearch_prompt + ISEARCH_STATUS[:string], log: false)
      end
      Window.redisplay
    end
  else
    block.call(Buffer.current)
  end
end