mgechev / revive

🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
https://revive.run
MIT License
4.79k stars 278 forks source link

var-naming rule to check that plural vars with ID are capitalised #947

Closed VincentBaron closed 8 months ago

VincentBaron commented 10 months ago

Is your feature request related to a problem? Please describe. the var-naming rule only checks that vars ending in ID are capitalised (e.g. userId => userID). I think it would be nice that it also check that vars ending in IDs are checked. (e.g. userIds => userIDs).

Describe the solution you'd like Add a condition to the check that plurals vars such as userIDs are well capitalised. Happy to do the PR 🤗

denisvmedia commented 10 months ago

That's an interesting proposal. But we should be careful in the scope definition. E.g. userIdx is not something that should be capitalized. Do you have a definition of what should be capitalized and what not?

VincentBaron commented 10 months ago

I would say all vars ending in Ids should be IDs. That's all. What do you think?

denisvmedia commented 9 months ago

Probably ti is fine. However, I'm wondering how hard it affects the existing projects? Can you check any existing project like Kubernetes how it will affect it?

mfederowicz commented 9 months ago

@denisvmedia I run on kubernetes master branch (https://github.com/kubernetes/kubernetes) :

revive -config ~/revive-var-naming.toml -formatter stylish ./...

and there are 10863 problems (0 errors) (10863 warnings) - only related with var-naming rule (pkg/staging/vendor/plugin dirs) maybe they are not using linters :P

denisvmedia commented 9 months ago

I see. Please feel free to submit a PR for this issue.

mfederowicz commented 9 months ago

hehe of course with not using linters in kubernetes projcect was a joke:

git:master ~/git-repos/kubernetes 
=$ make lint
go version go1.21.5 linux/amd64
installing golangci-lint and logcheck plugin from hack/tools into /home/mfederowicz/git-repos/kubernetes/_output/local/bin
running /home/mfederowicz/git-repos/kubernetes/_output/local/bin/golangci-lint run --color=always --config=/home/mfederowicz/git-repos/kubernetes/hack/golangci.yaml ./...

but my local test was with only one rule: var-naming in config:

=$ cat revive-var-naming.toml
ignoreGeneratedHeader = false
severity = "warning"
confidence = 0.8
errorCode = 0
warningCode = 0

[rule.var-naming]

so @VincentBaron if you like issue is yours :P

VincentBaron commented 8 months ago

Okay, thanks guys! Working on it 😊