diff options
Diffstat (limited to 'source/blender/blenlib/BLI_string_search.h')
-rw-r--r-- | source/blender/blenlib/BLI_string_search.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_string_search.h b/source/blender/blenlib/BLI_string_search.h index 8057e5b75cb..b846a4d3c39 100644 --- a/source/blender/blenlib/BLI_string_search.h +++ b/source/blender/blenlib/BLI_string_search.h @@ -23,7 +23,16 @@ extern "C" { typedef struct StringSearch StringSearch; StringSearch *BLI_string_search_new(void); +/** + * Add a new possible result to the search. + * The caller keeps ownership of all parameters. + */ void BLI_string_search_add(StringSearch *search, const char *str, void *user_data); +/** + * Filter and sort all previously added search items. + * Returns an array containing the filtered user data. + * The caller has to free the returned array. + */ int BLI_string_search_query(StringSearch *search, const char *query, void ***r_data); void BLI_string_search_free(StringSearch *search); @@ -40,8 +49,24 @@ void BLI_string_search_free(StringSearch *search); namespace blender::string_search { +/** + * Computes the cost of transforming string a into b. The cost/distance is the minimal number of + * operations that need to be executed. Valid operations are deletion, insertion, substitution and + * transposition. + * + * This function is utf8 aware in the sense that it works at the level of individual code points + * (1-4 bytes long) instead of on individual bytes. + */ int damerau_levenshtein_distance(StringRef a, StringRef b); +/** + * Returns -1 when this is no reasonably good match. + * Otherwise returns the number of errors in the match. + */ int get_fuzzy_match_errors(StringRef query, StringRef full); +/** + * Splits a string into words and normalizes them (currently that just means converting to lower + * case). The returned strings are allocated in the given allocator. + */ void extract_normalized_words(StringRef str, LinearAllocator<> &allocator, Vector<StringRef, 64> &r_words); |