Skip to content

Commit 2b86f85

Browse files
authored
tagliatelle: force upper case for custom initialisms (#5956)
1 parent 2a6a36b commit 2b86f85

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

pkg/golinters/tagliatelle/tagliatelle.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package tagliatelle
22

33
import (
44
"maps"
5+
"strings"
56

67
"github.com/ldez/tagliatelle"
78

@@ -50,10 +51,15 @@ func toExtendedRules(src map[string]config.TagliatelleExtendedRule) map[string]t
5051
result := make(map[string]tagliatelle.ExtendedRule, len(src))
5152

5253
for k, v := range src {
54+
initialismOverrides := make(map[string]bool, len(v.InitialismOverrides))
55+
for ki, vi := range v.InitialismOverrides {
56+
initialismOverrides[strings.ToUpper(ki)] = vi
57+
}
58+
5359
result[k] = tagliatelle.ExtendedRule{
5460
Case: v.Case,
5561
ExtraInitialisms: v.ExtraInitialisms,
56-
InitialismOverrides: v.InitialismOverrides,
62+
InitialismOverrides: initialismOverrides,
5763
}
5864
}
5965

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//golangcitest:args -Etagliatelle
2+
//golangcitest:config_path testdata/tagliatelle_initialism_overrides.yml
3+
package testdata
4+
5+
type Foo struct {
6+
UserAMQP string `json:"useAmqp"` // want `json\(camel\): got 'useAmqp' want 'useAMQP'`
7+
FooLHS string `json:"fooLhs"`
8+
FooRHS string `json:"fooRhs"` // want `json\(camel\): got 'fooRhs' want 'fooRHS'`
9+
SomeAWSKey string `json:"someAwsKey"` // want `json\(camel\): got 'someAwsKey' want 'someAWSKey'`
10+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: "2"
2+
3+
linters:
4+
settings:
5+
tagliatelle:
6+
case:
7+
rules:
8+
json: camel
9+
extended-rules:
10+
json:
11+
case: camel
12+
extra-initialisms: true
13+
initialism-overrides:
14+
LHS: false
15+
RHS: true
16+
AWS: true

0 commit comments

Comments
 (0)