Merge pull request #85943 from kuruk-mm/fix/find-in-files
Stop the searching of `find in files` in folders that have `.gdignore`
This commit is contained in:
commit
6665a629c3
2 changed files with 10 additions and 5 deletions
|
@ -172,9 +172,11 @@ void FindInFiles::_iterate() {
|
||||||
_current_dir = _current_dir.path_join(folder_name);
|
_current_dir = _current_dir.path_join(folder_name);
|
||||||
|
|
||||||
PackedStringArray sub_dirs;
|
PackedStringArray sub_dirs;
|
||||||
_scan_dir("res://" + _current_dir, sub_dirs);
|
PackedStringArray files_to_scan;
|
||||||
|
_scan_dir("res://" + _current_dir, sub_dirs, files_to_scan);
|
||||||
|
|
||||||
_folders_stack.push_back(sub_dirs);
|
_folders_stack.push_back(sub_dirs);
|
||||||
|
_files_to_scan.append_array(files_to_scan);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Go back one level.
|
// Go back one level.
|
||||||
|
@ -211,7 +213,7 @@ float FindInFiles::get_progress() const {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindInFiles::_scan_dir(String path, PackedStringArray &out_folders) {
|
void FindInFiles::_scan_dir(String path, PackedStringArray &out_folders, PackedStringArray &out_files_to_scan) {
|
||||||
Ref<DirAccess> dir = DirAccess::open(path);
|
Ref<DirAccess> dir = DirAccess::open(path);
|
||||||
if (dir.is_null()) {
|
if (dir.is_null()) {
|
||||||
print_verbose("Cannot open directory! " + path);
|
print_verbose("Cannot open directory! " + path);
|
||||||
|
@ -227,8 +229,11 @@ void FindInFiles::_scan_dir(String path, PackedStringArray &out_folders) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If there is a .gdignore file in the directory, skip searching the directory.
|
// If there is a .gdignore file in the directory, clear all the files/folders
|
||||||
|
// to be searched on this path and skip searching the directory.
|
||||||
if (file == ".gdignore") {
|
if (file == ".gdignore") {
|
||||||
|
out_folders.clear();
|
||||||
|
out_files_to_scan.clear();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,7 +252,7 @@ void FindInFiles::_scan_dir(String path, PackedStringArray &out_folders) {
|
||||||
} else {
|
} else {
|
||||||
String file_ext = file.get_extension();
|
String file_ext = file.get_extension();
|
||||||
if (_extension_filter.has(file_ext)) {
|
if (_extension_filter.has(file_ext)) {
|
||||||
_files_to_scan.push_back(path.path_join(file));
|
out_files_to_scan.push_back(path.path_join(file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ protected:
|
||||||
private:
|
private:
|
||||||
void _process();
|
void _process();
|
||||||
void _iterate();
|
void _iterate();
|
||||||
void _scan_dir(String path, PackedStringArray &out_folders);
|
void _scan_dir(String path, PackedStringArray &out_folders, PackedStringArray &out_files_to_scan);
|
||||||
void _scan_file(String fpath);
|
void _scan_file(String fpath);
|
||||||
|
|
||||||
// Config
|
// Config
|
||||||
|
|
Loading…
Reference in a new issue