aboutsummaryrefslogtreecommitdiff
path: root/internal/analyze
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-04-11 09:24:53 +0000
committerFuwn <[email protected]>2026-04-11 09:24:53 +0000
commitebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71 (patch)
tree51b46e5848f57e77553339dd20982e282eb29f29 /internal/analyze
parentfeat: Initial commit (diff)
downloadkivia-ebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71.tar.xz
kivia-ebe79ea1aaaf8b7bfe30fbb932424e59bdc70b71.zip
fix(analyze): improve uppercase token detection accuracy
Diffstat (limited to 'internal/analyze')
-rw-r--r--internal/analyze/analyze.go17
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 {