Exclude folders from Eclipse search
Is there a way to exclude certain folders (and all their subfolders) from searching within Eclipse?
The quick and dirty way:
Right click on a folder, go to properties, and mark a folder as derived. Derived entities are excluded from searching by default. The problem with this approach is that Eclipse "forgets" that the folder is derived if you delete it (either from within Eclipse or externally, followed by refreshing the project tree). Like so often with Eclipse, this is a long-standing bug (10 years in this case) which still applies to the current version (4.6 Neon at the time of writing).
The safe way:
Create a working set including only those entities you want searched and search only within that working set. See Dave Ray's answer for details on this procedure.
Here is what works for me (I'm using Helios - maybe this way was not available when this question was originally asked?)
- Go to Project -> Properties -> Resource Filters.
- Click Add.
- Choose Filter type: Exclude all
- Choose Applies to: Folders; check All children (recursive).
- In the Attributes, choose Name, Matches,
.svn
(for example).
(Actually, I'm using .*
to filter out .svn, .hg etc. in one go.)
After okay'ing the project properties dialog, these directories won't come up in search any more. In fact, Eclipse is so kind as to automatically update existing search results windows and remove all matches which are now filtered out.
I could imagine that marking resources derived might cause problems in other areas. Instead, create a working set with the folders you want to include in the search:
- Open Search dialog (Ctrl + H)
- Change search scope to Working Set
- Click Choose ...
- Click New to create a new Working Set with the what you want searched (or Add All and then remove the ones you want filtered