1
0

util.go 550 B

123456789101112131415161718192021222324252627282930
  1. package util
  2. import (
  3. "strings"
  4. "slices"
  5. )
  6. func StandardizeBindingsArray(arr []string) []string {
  7. new := []string{}
  8. for _, s := range arr {
  9. new = append(new, StandardizeBinding(s))
  10. }
  11. return new
  12. }
  13. func StandardizeBinding(binding string) string {
  14. arr := strings.Split(binding, "+")
  15. for i, s := range arr {
  16. lower := strings.ToLower(s)
  17. arr[i] = lower
  18. if strings.HasPrefix(lower, "rune[") && strings.HasSuffix(lower, "]") {
  19. arr[i] = lower[5 : len(s)-1]
  20. }
  21. }
  22. slices.Sort(arr)
  23. return strings.ToLower(strings.Join(arr, "+"))
  24. }