Author Topic: Filter Search Results with filespecs  (Read 2829 times)

rowbearto

  • Senior Community Member
  • Posts: 2335
  • Hero Points: 132
Filter Search Results with filespecs
« on: February 21, 2018, 06:44:24 PM »
Currently in "Filter Search Results..", it only asks for text to search for.

I'd like a way to say "Exclude all *.P files from the results".

I know that I can specify *.P in the exclusions list for the multi-file search before I do the search.

The problem is that I don't always know in advance which filespecs to exclude.

I can run another search once I get the results and see undesired files in there, but then I have to wait for another multi-file search. If there was a way to filter out the files in the search results, then I don't need to wait another search.

jporkkahtc

  • Senior Community Member
  • Posts: 2620
  • Hero Points: 210
  • Text
Re: Filter Search Results with filespecs
« Reply #1 on: February 22, 2018, 12:12:05 AM »
"procmon.exe" style filtering would be good.
right-click on an entry (say, C:\src\file.cpp) and the context menu would have several options, like
   include "*.cpp"
   include "file.pp"
   include "C:\src"
   exclude "*.cpp"
   exclude "file.pp"
   exclude "C:\src"

Graeme

  • Senior Community Member
  • Posts: 2793
  • Hero Points: 347
Re: Filter Search Results with filespecs
« Reply #2 on: February 22, 2018, 11:20:15 AM »
You could use the macro below to skip to the first search result item in the next buffer.
Did you know in the search results window you can right click and select collapse all.  Then if you click the plus sign in the top left corner it expands one level to show a list of files.  You can then delete a line from that list and the search results for that file are deleted from the search results. 

You could extend the macro below to remember the file extensions you've already skipped and automatically skip over those file types.


Code: [Select]
_command void xfn() name_info(',')
{
   _str fn = p_buf_name;
   while (find_next() == 0)
   {
      if ( p_buf_name != fn ) {
         return;
      }
   }
}