From bd9f8f2062a19bda435ab2941d8592e0d9707679 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Sat, 24 Nov 2007 17:42:04 +0000 Subject: [PATCH] - 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 --- lib/sup/buffer.rb | 5 +++-- lib/sup/modes/buffer-list-mode.rb | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb index d04f481..a418762 100644 --- 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 index 69d367f..91b2fac 100644 --- 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 -- 2.45.2