Sha256: 33bb1f8f7ecc2e9ef1a704b80448384ee239de5f0006e304082335a8f3c5a2cf

Contents?: true

Size: 1.18 KB

Versions: 24

Compression:

Stored size: 1.18 KB

Contents

module Redwood

class BufferListMode < LineCursorMode
  register_keymap do |k|
    k.add :jump_to_buffer, "Jump to selected buffer", :enter
    k.add :reload, "Reload buffer list", "@"
    k.add :kill_selected_buffer, "Kill selected buffer", "X"
  end

  def initialize
    regen_text
    super
  end

  def lines; @text.length end
  def [] i; @text[i] end

  def focus
    reload # buffers may have been killed or created since last view
    set_cursor_pos 0
  end

protected

  def reload
    regen_text
    buffer.mark_dirty
  end

  def regen_text
    @bufs = BufferManager.buffers.reject { |name, buf| buf.mode == self || buf.hidden? }.sort_by { |name, buf| buf.atime }.reverse
    width = @bufs.max_of { |name, buf| buf.mode.name.length }
    @text = @bufs.map do |name, buf|
      base_color = buf.system? ? :system_buf_color : :regular_buf_color
      [[base_color, sprintf("%#{width}s ", buf.mode.name)],
       [:modified_buffer_color, (buf.mode.unsaved? ? '*' : ' ')],
       [base_color, " " + name]]
    end
  end

  def jump_to_buffer
    BufferManager.raise_to_front @bufs[curpos][1]
  end

  def kill_selected_buffer
    reload if BufferManager.kill_buffer_safely @bufs[curpos][1]
  end
end

end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
sup-1.2 lib/sup/modes/buffer_list_mode.rb
sup-1.1 lib/sup/modes/buffer_list_mode.rb
sup-1.0 lib/sup/modes/buffer_list_mode.rb
sup-0.23 lib/sup/modes/buffer_list_mode.rb
sup-0.22.1 lib/sup/modes/buffer_list_mode.rb
sup-0.22.0 lib/sup/modes/buffer_list_mode.rb
sup-0.21.0 lib/sup/modes/buffer_list_mode.rb
sup-0.20.0 lib/sup/modes/buffer_list_mode.rb
sup-0.19.0 lib/sup/modes/buffer_list_mode.rb
sup-0.18.0 lib/sup/modes/buffer_list_mode.rb
sup-0.17.0 lib/sup/modes/buffer_list_mode.rb
sup-0.16.0 lib/sup/modes/buffer_list_mode.rb
sup-0.15.4 lib/sup/modes/buffer_list_mode.rb
sup-0.15.3 lib/sup/modes/buffer_list_mode.rb
sup-0.15.2 lib/sup/modes/buffer_list_mode.rb
sup-0.15.1 lib/sup/modes/buffer_list_mode.rb
sup-0.15.0 lib/sup/modes/buffer_list_mode.rb
sup-0.14.1.1 lib/sup/modes/buffer_list_mode.rb
sup-0.13.2.1 lib/sup/modes/buffer_list_mode.rb
sup-0.14.1 lib/sup/modes/buffer_list_mode.rb