mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-11 04:15:48 +02:00
28 lines
454 B
Go
28 lines
454 B
Go
package utils
|
|
|
|
import (
|
|
"sort"
|
|
|
|
"github.com/sahilm/fuzzy"
|
|
)
|
|
|
|
func FuzzySearch(needle string, haystack []string) []string {
|
|
if needle == "" {
|
|
return []string{}
|
|
}
|
|
|
|
myHaystack := make([]string, len(haystack))
|
|
for i := range haystack {
|
|
myHaystack[i] = haystack[i]
|
|
}
|
|
|
|
matches := fuzzy.Find(needle, haystack)
|
|
sort.Sort(matches)
|
|
|
|
result := make([]string, len(matches))
|
|
for i, match := range matches {
|
|
result[i] = match.Str
|
|
}
|
|
|
|
return result
|
|
}
|