1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Add fuzzy filtering to the script filtering

This commit is contained in:
Kasper Arnklit Frandsen
2025-04-10 14:03:46 +01:00
parent 6c9765d87e
commit 7dc9a088bc

View File

@@ -37,6 +37,7 @@
#include "core/io/resource_loader.h"
#include "core/os/keyboard.h"
#include "core/os/os.h"
#include "core/string/fuzzy_search.h"
#include "core/version.h"
#include "editor/code_editor.h"
#include "editor/debugger/editor_debugger_node.h"
@@ -2281,10 +2282,24 @@ void ScriptEditor::_update_script_names() {
}
Vector<_ScriptEditorItemData> sedata_filtered;
for (int i = 0; i < sedata.size(); i++) {
String filter = filter_scripts->get_text();
if (filter.is_empty() || filter.is_subsequence_ofn(sedata[i].name)) {
sedata_filtered.push_back(sedata[i]);
String filter = filter_scripts->get_text();
if (filter.is_empty()) {
sedata_filtered = sedata;
} else {
PackedStringArray search_names;
for (int i = 0; i < sedata.size(); i++) {
search_names.append(sedata[i].name);
}
Vector<FuzzySearchResult> results;
FuzzySearch fuzzy;
fuzzy.set_query(filter, false);
fuzzy.search_all(search_names, results);
for (const FuzzySearchResult &res : results) {
sedata_filtered.push_back(sedata[res.original_index]);
}
}