Open kyhyco opened 6 months ago
Yeah besides forge fmt
, solhint is the only other linter I've seen used before. forge fmt
does have its own section in the config file that we could also set to get more use out of it. Regarding which rules to use for solhint, the recommended Best Practices and Style Guide Rules sections look good. However, the Security Rules look pretty out of date / not of high fidelity to be worth enabling.
Additional suggestion for tests: Use Branching Tree Technique for Solidity tests, through bulloak (https://github.com/coinbase/build-onchain-apps/issues/523)
Describe the solution you'd like
Took a look at linters for solidity:
solhint
solhint
is a linter with rules. Similar control mechanisms toeslint
, supporting disabling rules via comments and allow you to create new rules.solhint
provides additional styling rules that augmentsforge fmt
orprettier-solidity-plugin
. Pretty neat.ethlint
Project appears to be inactive
ethlint
is out as it is inactive.For
solhint
, we need to add two files:.solhint.json
and.solhintignore
.In
.solhint.json
, we need to decide which rules sets to follow.solhint:recommended
option looks good but would like to hear from more experienced solidity developers on which rule sets to enable / how their experience withsolhint
has been.In
.solhintignore
,lib
should be added as we don't want to lint third party imports.Been using
solhint
for a couple days and it's been decent so far.Describe alternatives you've considered.
No response