* Refactoring on atomic rule:
-Main modification: move func gofmt to utils.go
* Refactoring on constant-logical-expr rule
Simplifies equality check of subexpressions by using gofmt function
* Add the imports-blacklist rule with tests
* Add the imports-blacklist rule to README.md
* Update the imports-blacklist rule to use map[string]bool so that we can have the algorithm in Visit below with O(n) instead of O(n*m)
* Fix the imports-blacklist rule to be case sensitive
This PR introduces a white & black lists of initialisms for the
`var-naming` rule.
Now the rule can be configured with:
```toml
[rule.var-naming]
arguments = [["ID"], ["VM", "BAR"]]
```
This way, the linter will ignore `customId` but will throw on `customVm` or `customBar`.
Fix#41
* Adds rule superfluous-else (an extension of indent-error-flow)
* Fix superfluous-else rule struct namming.
* Adds superfuous-else rule to the rules table
* Adds confusing-naming rule
* adds multifile test
* [WIP] fix multiple file test
* draft solution for detecting confusing-names through multiple files
* [WIP] confusing-name multiple files
* clean-up
* draft working version
* cleaner version + more informative messages
* adds check on struct field names
* fix config.go
* clean master
* new ADS rule: newerr
* ADS-print working version
* ads-print final version
* ads-lost-err working version
* confusing-namming: fix tests
* removes ads-* rules
* rule unreachable-code
* unreachable-code refactored version
* skip corner case of mandatory return
* Adds rule superfluous-else (an extension of indent-error-flow)
* Fix superfluous-else rule struct namming.
* Adds superfuous-else rule to the rules table
* Adds confusing-naming rule
* adds multifile test
* [WIP] fix multiple file test
* draft solution for detecting confusing-names through multiple files
* [WIP] confusing-name multiple files
* clean-up
* draft working version
* cleaner version + more informative messages
* adds check on struct field names
* fix config.go
* clean master
* new ADS rule: newerr
* ADS-print working version
* ads-print final version
* ads-lost-err working version
* confusing-namming: fix tests
* moves pick to rule/utils for better reusability
* Fix rule for documentation of exported types
The rule was failing in the following case:
```go
// A is an awesome type
type A = int
```
Because revive was skipping the leading `A`, considering it as an article.
* Add "This" article and update Makefile
* Adds rule superfluous-else (an extension of indent-error-flow)
* Fix superfluous-else rule struct namming.
* Adds superfuous-else rule to the rules table
* Adds confusing-naming rule
* adds multifile test
* [WIP] fix multiple file test
* draft solution for detecting confusing-names through multiple files
* [WIP] confusing-name multiple files
* clean-up
* draft working version
* cleaner version + more informative messages
* adds check on struct field names
* fix config.go
* clean master
* new ADS rule: newerr
* ADS-print working version
* ads-print final version
* ads-lost-err working version
* confusing-namming: fix tests
* unused-parameter: working version
* WIP adds scopes - still imprecise ( eg a:=a is not detected as use)
* w/scopes and more precise
* adds test on structs
* adds test w/ var shadowing
* more precise handling of for/switch statements
* fix check of +=, -=, *= and the like. Adds better support for slices and switchs
* Adds rule superfluous-else (an extension of indent-error-flow)
* Fix superfluous-else rule struct namming.
* Adds superfuous-else rule to the rules table
* Modifies empty-block rule to ignore bodies of
func literals and funcs
* add test cases on functions with a receiver for completeness
* Adds rule superfluous-else (an extension of indent-error-flow)
* initial (non functional) version
* empty-block working version
* adds tests for empty-block rule
* Adds empty-block to the rules table
* code clean-up