Skip to content

Instantly share code, notes, and snippets.

@hluk
Created November 19, 2015 07:30
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hluk/95889230aeea2388dea5 to your computer and use it in GitHub Desktop.
Save hluk/95889230aeea2388dea5 to your computer and use it in GitHub Desktop.
CopyQ - Search All Tabs
[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
Copy link

NA0341 commented Dec 17, 2023

@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

@tjbiking
Copy link

tjbiking commented Jan 8, 2024

How to include tags in the search?

@NA0341
Copy link

NA0341 commented Jan 14, 2024

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

@tjbiking
Copy link

tjbiking commented Jan 14, 2024 via email

@vysmaty
Copy link

vysmaty commented Apr 10, 2024

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))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment