Find/Replace in Files: don't exclude items that trigger the exclude filter above the search location
Review Request #127908 - Created May 13, 2016 and updated
|René J.V. Bertin|
"Find/Replace in Files" has an include and an exclude filter. The former serves to consider only files matching a pattern under the search location. The latter serves to exclude files matching a pattern, but considers the full path.
The standard exclude pattern contains the pattern
/build/, to exclude the build directory. Filtering on the full path means that it is not possible to search in a location that has an ancestor called
This patch attempts to mask the patch above the search location from the exclude filter.
It could even mask the search location itself from that filter, which would allow to search e.g. in a typical build directory by setting the location to that directory, and without having to edit the exclude filter.
I'm not very proud of the expression used to determine the location's
dirName, but I saw no better way since it presumably has to be a canonical (normalised) path and there is no
Search now works as I'd expect (when searching the files of a project) regardless of where the search location is stored.
personally, I think you should instead check the exclude filter against the start location of the search. If that is already excluded, show a helpful message to the user explaining that nothing can possibly be matched and that he needs to change the filter then