diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/themes/search.go')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/themes/search.go | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/themes/search.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/themes/search.go deleted file mode 100644 index 347f791..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/themes/search.go +++ /dev/null @@ -1,40 +0,0 @@ -package themes - -import ( - "strings" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/utils" -) - -func FuzzySearch(query string, themes []Theme) []Theme { - if query == "" { - return themes - } - - queryLower := strings.ToLower(query) - return utils.Filter(themes, func(t Theme) bool { - return fuzzyMatch(queryLower, strings.ToLower(t.Name)) || - fuzzyMatch(queryLower, strings.ToLower(t.Description)) || - fuzzyMatch(queryLower, strings.ToLower(t.Author)) - }) -} - -func fuzzyMatch(query, text string) bool { - queryIdx := 0 - for _, char := range text { - if queryIdx < len(query) && char == rune(query[queryIdx]) { - queryIdx++ - } - } - return queryIdx == len(query) -} - -func FindByIDOrName(idOrName string, themes []Theme) *Theme { - if t, found := utils.Find(themes, func(t Theme) bool { return t.ID == idOrName }); found { - return &t - } - if t, found := utils.Find(themes, func(t Theme) bool { return t.Name == idOrName }); found { - return &t - } - return nil -} |