]> git.cworth.org Git - sup/blobdiff - lib/sup/modes/label-search-results-mode.rb
Merge branch 'master' into next
[sup] / lib / sup / modes / label-search-results-mode.rb
index 3f4df9db35e587182aba3bce11eef0fe8407e761..bca51d456143e901683b7f3b65f1be3a909e25e0 100644 (file)
@@ -9,7 +9,18 @@ class LabelSearchResultsMode < ThreadIndexMode
     super [], opts
   end
 
-  def is_relevant? m; @labels.all? { |l| m.has_label? l }; 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, "refine 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
     label = LabelManager.label_for(label) unless label.is_a?(Symbol)