darker 2 weeks ago committed by GitHub
commit 5721df1feb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -940,14 +940,11 @@ func EqualMatch(caseSensitive bool, normalize bool, forward bool, text *util.Cha
return Result{-1, -1, 0}, nil
}
// Strip leading whitespaces
trimmedLen := 0
// Strip leading and trailing whitespaces
trimmedLen, trimmedEndLen := 0, 0
if !unicode.IsSpace(pattern[0]) {
trimmedLen = text.LeadingWhitespaces()
}
// Strip trailing whitespaces
trimmedEndLen := 0
if !unicode.IsSpace(pattern[lenPattern-1]) {
trimmedEndLen = text.TrailingWhitespaces()
}
@ -955,30 +952,28 @@ func EqualMatch(caseSensitive bool, normalize bool, forward bool, text *util.Cha
if text.Length()-trimmedLen-trimmedEndLen != lenPattern {
return Result{-1, -1, 0}, nil
}
match := true
textRunes := text.ToRunes()
if normalize {
runes := text.ToRunes()
for idx, pchar := range pattern {
char := runes[trimmedLen+idx]
char := textRunes[trimmedLen+idx]
if !caseSensitive {
char = unicode.To(unicode.LowerCase, char)
}
if normalizeRune(pchar) != normalizeRune(char) {
match = false
break
return Result{-1, -1, 0}, nil
}
}
} else {
runes := text.ToRunes()
runesStr := string(runes[trimmedLen : len(runes)-trimmedEndLen])
runesStr := string(textRunes[trimmedLen : len(textRunes)-trimmedEndLen])
if !caseSensitive {
runesStr = strings.ToLower(runesStr)
}
match = runesStr == string(pattern)
}
if match {
return Result{trimmedLen, trimmedLen + lenPattern, (scoreMatch+int(bonusBoundaryWhite))*lenPattern +
(bonusFirstCharMultiplier-1)*int(bonusBoundaryWhite)}, nil
if runesStr != string(pattern) {
return Result{-1, -1, 0}, nil
}
}
return Result{-1, -1, 0}, nil
score := (scoreMatch+int(bonusBoundaryWhite))*lenPattern + (bonusFirstCharMultiplier-1)*int(bonusBoundaryWhite)
return Result{trimmedLen, trimmedLen + lenPattern, score}, nil
}

Loading…
Cancel
Save