diff options
| author | Fuwn <[email protected]> | 2026-04-11 09:24:53 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-04-11 09:24:53 +0000 |
| commit | ebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71 (patch) | |
| tree | 51b46e5848f57e77553339dd20982e282eb29f29 | |
| parent | feat: Initial commit (diff) | |
| download | kivia-ebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71.tar.xz kivia-ebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71.zip | |
fix(analyze): improve uppercase token detection accuracy
| -rw-r--r-- | internal/analyze/analyze.go | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/internal/analyze/analyze.go b/internal/analyze/analyze.go index 315f086..2b9112e 100644 --- a/internal/analyze/analyze.go +++ b/internal/analyze/analyze.go @@ -108,7 +108,22 @@ func isUpperCaseToken(identifierName string, token string) bool { return false } - return strings.Contains(identifierName, strings.ToUpper(token)) + upperToken := strings.ToUpper(token) + + if !strings.Contains(identifierName, upperToken) { + return false + } + + tokenIndex := strings.Index(identifierName, upperToken) + afterIndex := tokenIndex + len(upperToken) + + if afterIndex >= len(identifierName) { + return true + } + + nextRune, _ := utf8.DecodeRuneInString(identifierName[afterIndex:]) + + return !unicode.IsLower(nextRune) } func tokenize(name string) []string { |