File tree Expand file tree Collapse file tree 1 file changed +19
-4
lines changed
Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change 3838#include " core/io/resource_loader.h"
3939#include " core/os/keyboard.h"
4040#include " core/os/os.h"
41+ #include " core/string/fuzzy_search.h"
4142#include " core/version.h"
4243#include " editor/code_editor.h"
4344#include " editor/debugger/editor_debugger_node.h"
@@ -2322,10 +2323,24 @@ void ScriptEditor::_update_script_names() {
23222323 }
23232324
23242325 Vector<_ScriptEditorItemData> sedata_filtered;
2325- for (int i = 0 ; i < sedata.size (); i++) {
2326- String filter = filter_scripts->get_text ();
2327- if (filter.is_empty () || filter.is_subsequence_ofn (sedata[i].name )) {
2328- sedata_filtered.push_back (sedata[i]);
2326+
2327+ String filter = filter_scripts->get_text ();
2328+
2329+ if (filter.is_empty ()) {
2330+ sedata_filtered = sedata;
2331+ } else {
2332+ PackedStringArray search_names;
2333+ for (int i = 0 ; i < sedata.size (); i++) {
2334+ search_names.append (sedata[i].name );
2335+ }
2336+
2337+ Vector<FuzzySearchResult> results;
2338+ FuzzySearch fuzzy;
2339+ fuzzy.set_query (filter, false );
2340+ fuzzy.search_all (search_names, results);
2341+
2342+ for (const FuzzySearchResult &res : results) {
2343+ sedata_filtered.push_back (sedata[res.original_index ]);
23292344 }
23302345 }
23312346
You can’t perform that action at this time.
0 commit comments