@@ -2055,13 +2055,30 @@ void ScriptEditor::_update_members_overview() {
20552055 functions.sort ();
20562056 }
20572057
2058- for ( int i = 0 ; i < functions. size (); i++) {
2059- String filter = filter_methods-> get_text ();
2060- String name = functions[i]. get_slicec ( ' : ' , 0 );
2061- if (filter. is_empty () || filter. is_subsequence_ofn (name)) {
2058+ String filter = filter_methods-> get_text ();
2059+ if ( filter. is_empty ()) {
2060+ for ( int i = 0 ; i < functions. size (); i++) {
2061+ String name = functions[i]. get_slicec ( ' : ' , 0 );
20622062 members_overview->add_item (name);
20632063 members_overview->set_item_metadata (-1 , functions[i].get_slicec (' :' , 1 ).to_int () - 1 );
20642064 }
2065+ } else {
2066+ PackedStringArray search_names;
2067+ for (int i = 0 ; i < functions.size (); i++) {
2068+ search_names.append (functions[i].get_slicec (' :' , 0 ));
2069+ }
2070+
2071+ Vector<FuzzySearchResult> results;
2072+ FuzzySearch fuzzy;
2073+ fuzzy.set_query (filter, false );
2074+ fuzzy.search_all (search_names, results);
2075+
2076+ for (const FuzzySearchResult &res : results) {
2077+ String name = functions[res.original_index ].get_slicec (' :' , 0 );
2078+ int line = functions[res.original_index ].get_slicec (' :' , 1 ).to_int () - 1 ;
2079+ members_overview->add_item (name);
2080+ members_overview->set_item_metadata (-1 , line);
2081+ }
20652082 }
20662083
20672084 String path = se->get_edited_resource ()->get_path ();
0 commit comments