commit bd9f8f2062a19bda435ab2941d8592e0d9707679
parent a637136070c47119cd0c1263784fb47e2fb43c15
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Sat, 24 Nov 2007 17:42:04 +0000
- Make buffer-list-mode reload upon focus (thanks to Grant Hollingworth)
- Rekey buffer-list-mode 'R' to '@' for reload
- Stop BufferManager from throwing exceptions when a non-existent buffer
is raised or focused. (Those were mostly debugging checks anyways.)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@713 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb
@@ -155,7 +155,8 @@ class BufferManager
def buffers; @name_map.to_a; end
def focus_on buf
- raise ArgumentError, "buffer not on stack: #{buf.inspect}" unless @buffers.member? buf
+ return unless @buffers.member? buf
+
return if buf == @focus_buf
@focus_buf.blur if @focus_buf
@focus_buf = buf
@@ -163,7 +164,7 @@ class BufferManager
end
def raise_to_front buf
- raise ArgumentError, "buffer not on stack: #{buf.inspect}" unless @buffers.member? buf
+ return unless @buffers.member? buf
@buffers.delete buf
if @buffers.length > 0 && @buffers.last.force_to_top?
diff --git a/lib/sup/modes/buffer-list-mode.rb b/lib/sup/modes/buffer-list-mode.rb
@@ -3,7 +3,7 @@ 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", "R"
+ k.add :reload, "Reload buffer list", "@"
end
def initialize
@@ -11,8 +11,12 @@ class BufferListMode < LineCursorMode
super
end
- def lines; @text.length; end
- def [] i; @text[i]; end
+ def lines; @text.length end
+ def [] i; @text[i] end
+
+ def focus
+ reload # buffers may have been killed or created since last view
+ end
protected