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