]> git.cworth.org Git - sup/commitdiff
patch to add refine search command for label-search-results-mode from Grant Hollingworth
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 10 Dec 2007 06:46:57 +0000 (06:46 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 10 Dec 2007 06:46:57 +0000 (06:46 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@765 5c8cc53c-5e98-4d25-b20a-d8db53a31250

lib/sup/modes/label-search-results-mode.rb

index 88e359548b0bd15698a86a7f8ae35fb3c2a12a15..af6831c858fb522c5748e2822b98b66226929f34 100644 (file)
@@ -9,6 +9,17 @@ class LabelSearchResultsMode < ThreadIndexMode
     super [], opts
   end
 
+  register_keymap do |k|
+    k.add :refine_search, "Refine search", '.'
+  end
+
+  def refine_search
+    label_query = @labels.size > 1 ? "(#{@labels.join('||')})" : @labels.first
+    query = BufferManager.ask :search, "query: ", "+label:#{label_query} "
+    return unless query && query !~ /^\s*$/
+    SearchResultsMode.spawn_from_query query
+  end
+
   def is_relevant? m; @labels.all? { |l| m.has_label? l } end
 
   def self.spawn_nicely label