3 class BufferListMode < LineCursorMode
5 k.add :jump_to_buffer, "Jump to selected buffer", :enter
6 k.add :reload, "Reload buffer list", "@"
14 def lines; @text.length end
15 def [] i; @text[i] end
18 reload # buffers may have been killed or created since last view
30 @bufs = BufferManager.buffers.reject { |name, buf| buf.mode == self }.sort_by { |name, buf| buf.atime }.reverse
31 width = @bufs.max_of { |name, buf| buf.mode.name.length }
32 @text = @bufs.map do |name, buf|
33 base_color = buf.system? ? :system_buf_color : :regular_buf_color
34 [[base_color, sprintf("%#{width}s ", buf.mode.name)],
35 [:modified_buffer_color, (buf.mode.unsaved? ? '*' : ' ')],
36 [base_color, " " + name]]
41 BufferManager.raise_to_front @bufs[curpos][1]