-
-
Save hluk/95889230aeea2388dea5 to your computer and use it in GitHub Desktop.
| [Command] | |
| Name=Search All Tabs | |
| Command=" | |
| copyq: | |
| // Name for tab for storing matching items. | |
| var search_tab_name = \"Search\" | |
| // Returns true iff item at index matches regex. | |
| function item_matches(item_index, re) | |
| { | |
| var text = str(read(j)) | |
| return text && re.test(text) | |
| } | |
| // Ask for search expression. | |
| var match = dialog(\"Search\") | |
| if (!match) | |
| abort() | |
| var re = new RegExp(match) | |
| // Clear tab with results. | |
| try { | |
| removeTab(search_tab_name) | |
| } catch (e) {} | |
| // Search all tabs. | |
| var tab_names = tab() | |
| for (var i in tab_names) { | |
| var tab_name = tab_names[i] | |
| tab(tab_name) | |
| var item_count = count() | |
| // Search all items in tab. | |
| for (var j = 0; j < item_count; ++j) { | |
| // Add matching item to tab with results. | |
| if (item_matches(j, re)) { | |
| var item = getItem(j) | |
| tab(search_tab_name) | |
| setItem(j, item) | |
| tab(tab_name) | |
| } | |
| } | |
| } | |
| show(search_tab_name)" | |
| InMenu=true | |
| Icon=\xf002 | |
| Shortcut=Ctrl+Shift+F |
@NA0341 Thanks for kind words! BTW, "iff" means "if and only if". 😉
You're very welcome!
Your application is so important in my digital life that I can't even imagine what it'd be like to not have it.
…and there are some features I'd like to see get implemented too. They're mostly rather easy to do - but can greatly enhance the scope in which CopyQ can convieniently be used for.
Since it's been a long time since I first had this idea - I took the time to create the according card: hluk/CopyQ#2577
How to include tags in the search?
How to include tags in the search?
For that you'd need to specify the according variable in the script & let the search function include the tags. I guess that'd be line 36
Would anyone know how to add the tag search? I can't figure out how to get that information. Thank you.
var tag = str(item[mimeTag])
return text && (re.test(text) || re.test(note) || re.test(tag))
See README.md for details on how to add the command.