Merge pull request #105240 from Arnklit/script-method-fuzzy-filtering

Add fuzzy search to method filtering
This commit is contained in:
Thaddeus Crews 2025-05-28 09:47:35 -05:00
commit f1f395c142
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC

View file

@ -2055,13 +2055,30 @@ void ScriptEditor::_update_members_overview() {
functions.sort();
}
for (int i = 0; i < functions.size(); i++) {
String filter = filter_methods->get_text();
String name = functions[i].get_slicec(':', 0);
if (filter.is_empty() || filter.is_subsequence_ofn(name)) {
String filter = filter_methods->get_text();
if (filter.is_empty()) {
for (int i = 0; i < functions.size(); i++) {
String name = functions[i].get_slicec(':', 0);
members_overview->add_item(name);
members_overview->set_item_metadata(-1, functions[i].get_slicec(':', 1).to_int() - 1);
}
} else {
PackedStringArray search_names;
for (int i = 0; i < functions.size(); i++) {
search_names.append(functions[i].get_slicec(':', 0));
}
Vector<FuzzySearchResult> results;
FuzzySearch fuzzy;
fuzzy.set_query(filter, false);
fuzzy.search_all(search_names, results);
for (const FuzzySearchResult &res : results) {
String name = functions[res.original_index].get_slicec(':', 0);
int line = functions[res.original_index].get_slicec(':', 1).to_int() - 1;
members_overview->add_item(name);
members_overview->set_item_metadata(-1, line);
}
}
String path = se->get_edited_resource()->get_path();