Hey, one of my side projects is to slowly make a Nim linter
I already have one prototype at nim-linter<https://github.com/alehander42/nim-linter> and some DSL-s for loading tokens and AST and walking AST. I might need to work a bit on the compiler to get enough type info for some checks, but otherwise it seems the linter should have enough input for a lot of checks
So, what would be the most useful checks for you?
I've already listed several examples, I have some more in mind, and one can see which are the most useful checks in other libraries (e.g. Rubocop, go/rust linters, AutoPEP)
Several possible categories are:
Styling and layout Logic: e.g. weird conditions, possible bug Metrics Idiomatic code
If you have any other comments / ideas about the nim-linter architecture, "isn't that compiler's job?"(no) or linting in general, feel free to discuss!
PS
Also, if there are existing similar libs, please let me know, I tend to write something that later I find people already did pretty well often!