diff --git a/core/string/fuzzy_search.cpp b/core/string/fuzzy_search.cpp index 2fd0d3995ed..f67193b252e 100644 --- a/core/string/fuzzy_search.cpp +++ b/core/string/fuzzy_search.cpp @@ -338,9 +338,10 @@ bool FuzzySearch::search(const String &p_target, FuzzySearchResult &p_result) co void FuzzySearch::search_all(const PackedStringArray &p_targets, Vector &p_results) const { p_results.clear(); - for (const String &target : p_targets) { + for (int i = 0; i < p_targets.size(); i++) { FuzzySearchResult result; - if (search(target, result)) { + result.original_index = i; + if (search(p_targets[i], result)) { p_results.append(result); } } diff --git a/core/string/fuzzy_search.h b/core/string/fuzzy_search.h index e95726896eb..de46d613b91 100644 --- a/core/string/fuzzy_search.h +++ b/core/string/fuzzy_search.h @@ -76,6 +76,7 @@ class FuzzySearchResult { public: String target; int score = 0; + int original_index = -1; int dir_index = -1; Vector token_matches; };