You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-13 13:31:48 +00:00
Merge pull request #105240 from Arnklit/script-method-fuzzy-filtering
Add fuzzy search to method filtering
This commit is contained in:
@@ -2055,13 +2055,30 @@ void ScriptEditor::_update_members_overview() {
|
|||||||
functions.sort();
|
functions.sort();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < functions.size(); i++) {
|
String filter = filter_methods->get_text();
|
||||||
String filter = filter_methods->get_text();
|
if (filter.is_empty()) {
|
||||||
String name = functions[i].get_slicec(':', 0);
|
for (int i = 0; i < functions.size(); i++) {
|
||||||
if (filter.is_empty() || filter.is_subsequence_ofn(name)) {
|
String name = functions[i].get_slicec(':', 0);
|
||||||
members_overview->add_item(name);
|
members_overview->add_item(name);
|
||||||
members_overview->set_item_metadata(-1, functions[i].get_slicec(':', 1).to_int() - 1);
|
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();
|
String path = se->get_edited_resource()->get_path();
|
||||||
|
|||||||
Reference in New Issue
Block a user