sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 6bc5fac5b9321acacce27a93f30e576d343b1ee5
parent 4c36843665a06c9aff70119d905fa8e5ec4945a0
Author: Ben Walton <bwalton@artsci.utoronto.ca>
Date:   Fri, 14 May 2010 11:22:24 -0400

Add global keybinding to clear all hooks

When developing/tweaking hooks, it's inconvenient to use the console
mode to run the clear hooks command.  Add a globally available key
binding ('H') to trigger HookManager.clear.  As this is now more
exposed in the UI, make HookManager flash a notice to the
BufferManager indicating that it cleared the hooks.

Signed-off-by: Ben Walton 

Diffstat:
M bin/sup | 3 +++
M lib/sup/hook.rb | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/bin/sup b/bin/sup
@@ -86,6 +86,7 @@ global_keymap = Keymap.new do |k|
   k.add :nothing, "Do nothing", :ctrl_g
   k.add :recall_draft, "Edit most recent draft message", 'R'
   k.add :show_inbox, "Show the Inbox buffer", 'I'
+  k.add :clear_hooks, "Clear all hooks", 'H'
   k.add :show_console, "Show the Console buffer", '~'
 
   ## Submap for less often used keybindings
@@ -330,6 +331,8 @@ begin
       end
     when :show_inbox
       BufferManager.raise_to_front ibuf
+    when :clear_hooks
+      HookManager.clear
     when :show_console
       b, new = bm.spawn_unless_exists("Console", :system => true) { ConsoleMode.new }
       b.mode.run
diff --git a/lib/sup/hook.rb b/lib/sup/hook.rb
@@ -112,7 +112,7 @@ EOS
 
   def enabled? name; !hook_for(name).nil? end
 
-  def clear; @hooks.clear; end
+  def clear; @hooks.clear; BufferManager.flash "Hooks cleared" end
   def clear_one k; @hooks.delete k; end
 
 private