354 Commits

Author SHA1 Message Date
Denis Isaev
b31cfd6c78
update go-critic
$ git cherry --abbrev -v 0af0999fabfb ee9bf5809ead
+ abd8436 all: enable Go modules on CI (#753)
+ 3c9d0fb checkers: recognize //line and //nolint in commentFormatting (#756)
+ 0b517d7 checkers: extend deprecatedComment patterns (#757)
+ 09100f6 checkers: use astcast package instead of coerce.go (#758)
+ 2e9e97f checker: simplify boolExprSimplify (#759)
+ 575701e make: add go-consistent to CI checks list (#761)
+ b55f431 checkers: fix unlambda handling of builtins (#763)
+ 5a7dee3 checker: handle lambdas properly in boolExprSimplify (#765)
+ 5ce3939 checkers: teach boolExprSimplify a few new tricks (#766)
+ 04d160f checkers: add new patterns to boolExprSimplify (#768)
+ 09582e2 make: collect coverprofile separately from goveralls (#769)
+ d8d0ee4 checkers: recognize NOTE pattern in deprecatedComment (#770)
+ 12f0f85 Update copyright notice to 2019 (#771)
+ f54bdb6 checkers: add stringXbytes checker
+ 170d65c checkers: followup for #773 (#774)
+ 84e9e83 checkers: make stringXbytes more linear (#775)
+ a800815 checkers: add Depreacted typo pattern (#776)
+ 6751be9 checkers: add hexLiterals (#772)
+ ac61906 checkers: add typeAssertChain checker (#782)
+ d19dbf1 checkers: add codegenComment checker (#783)
+ d82b576 checkers: proper pkg/obj check for flagName (#786)
+ dfcf754 ci: enable integration tests (#787)
+ 5dafc45 checkers: fix equalFold false positive (#788)
+ ed5e8e7 checkers: refactor and fix hexLiteral checker (#789)
+ e704e07 checkers: add argOrder checker (#790)
+ 34c1dc8 checkers: add Split handling to argOrder checker (#791)
+ cbe095d checkers: add math.Max and math.Min to dupArg (#792)
+ c986ee5 checkers: add checkers info fields test (#794)
+ 66e5832 cmd/makedocs: use lintpack, fix build (#793)
+ 6bce9d0 cmd/makedocs: add enabled/disabled by default info (#795)
+ 4adbf9a checkers: simplify flagName (#799)
+ 07de34a checkers: add octalLiteral checker (#798)
+ 765907a cmd/makedocs: add checker param docs (#796)
+ ee9bf58 cmd/makedocs: fix headers formatting (#803)
2019-02-11 09:35:41 +03:00
Denis Isaev
b3bad285d0
Fix #382: make go-critic example config valid 2019-02-11 09:33:04 +03:00
Elliot Shepherd
186fe37bf8 add code-climate output format
Just the minimum of the format, to support GitLab CI Code Quality - https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html
2019-02-11 14:26:26 +08:00
Isaev Denis
48bea8b6de Update README.md 2019-02-11 14:22:32 +08:00
Martin Etmajer
aa26b37b6d Add 'segmentio/terraform-docs' to list of great projects. 2019-02-11 14:22:32 +08:00
Denis Isaev
81cf48771e
Fix #387: update goimports
$ git cherry --abbrev -v d66bd3c5d5a6 379209517ffe | fgrep imports:
+ a06a922a imports: update zstdlib to Go 1.12
+ cb89afad imports: drop anything after a non identifier rune in package
names
2019-02-11 09:11:51 +03:00
Denis Isaev
9916a2fb79
Relates #367: update unparam
$ git cherry -v cc9d2fb52971 fbb59629db34
+ 7362051ae01a0e35956c077c3be5505c70edd200 testdata: add more regression
tests
+ a88ca0234e2c3732a53cd49514fb3877a5d9f1f5 properly record which methods
implement interfaces
+ b762b0b27fa23ebbdfc31df1af4097cfd89a17f6 work properly with method
wrapper functions
+ f59bb08c5c7429b88e0c6e2399b12e71e8d950db testdata: consistently use
tabs
+ 46a5101c55d03117b263b4c5161e5d01353311c1 replace more callgraph code
with plain SSA
+ 1679b9996abdc6431c2147a133e5223ebb86ea60 rewrite foo(bar()) code to
work without callgraph
+ 71b5df77c291f8c5ead5f9ff0a69e0eebf3ae5b2 rewrite "called in return"
code without callgraph
+ fc5b1c74f563d4f2f9ee7d91eda648fc7baebf67 check: replace last use of
callgraph
+ 229ad68a599e2622cf9d3bb87a385b158efe736f fix a minor false negative in
callExtract
+ fbb59629db34a0f69275bc336cc8c3a4dd9fbe5d fix up another false negative
in testdata
2019-02-11 09:02:56 +03:00
Denis Isaev
c1085ef5a2
Relates #381, #367: cleanup docs and warn if unparam algo was configured 2019-02-11 08:56:49 +03:00
Jonathan Chappelow
01fb8231f9 unparam: update unparam, and go mod vendor
This updates the unparam linter to the current version that has fewer
false positives. The go.{mod,sum} files and the vendor folder are
updated as follows:

export GO111MODULE=on
go get -u mvdan.cc/unparam
go mod tidy
go mod vendor

The unparam callgraph algorithm is no longer selectable. Ref:
https://github.com/mvdan/unparam/commit/e6a6d1c5
This is the reason for removing the c.CallgraphAlgorithm(us.Algo) line
from pkg/golinters/unparam.go.
2019-02-11 13:48:53 +08:00
Denis Isaev
7b2421d551
docs: remove extra bracket v1.13.2 2019-01-26 18:56:51 +03:00
Denis Isaev
e690feb36b
docs: #377: simplify local installation manual 2019-01-26 18:55:29 +03:00
Denis Isaev
3e9b681cf0 fix #370: fix go-critic configuration broken in v1.13 2019-01-26 18:35:45 +03:00
Denis Isaev
af080e7503
don't crash when staticcheck panics v1.13.1 2019-01-24 12:19:05 +03:00
Denis Isaev
41cfba28c5 dev: update goreleaser config and add golangci.com configuration 2019-01-24 12:03:51 +03:00
Denis Isaev
99f4934030
dev: fix .goreleaser.yml 2019-01-21 10:59:51 +03:00
Denis Isaev
592ed2f684
dev: update .goreleaser.yml 2019-01-21 10:35:42 +03:00
Denis Isaev
2192097e7f
docs: update changelog v1.13 2019-01-21 09:43:37 +03:00
Denis Isaev
59a533cf52
Fix #344: fix go-misc checksum on go1.11.4
See golang/go#29664 and golang/go#29278
2019-01-21 08:58:39 +03:00
Joshua Rubin
aa814eb78e add support for searching for errcheck exclude file
Signed-off-by: Joshua Rubin <joshua@rubixconsulting.com>
2019-01-20 23:19:45 +03:00
Denis Isaev
f6ce931fcf fix #355: don't merge megacheck on linters cmd 2019-01-20 22:52:36 +03:00
Denis Isaev
2216387fa7 speedup typecheck on large project with compilation errors 2019-01-20 22:14:27 +03:00
Denis Isaev
2b7ea844ab
dev: add script for printing AST of file 2019-01-20 21:36:05 +03:00
Denis Isaev
8d8ba245e1
docs: update information about Atom integration 2019-01-20 20:48:23 +03:00
Denis Isaev
87aae77943 Update gocritic
Fix #324, relates #314

1. Update gocritic to the latest version
2. Use proper gocritic checkers repo, old repo was archived
3. Get enabled by default gocritic checks in sync with go-critic: don't
enable performance, experimental and opinionated checks by default
4. Support of `enabled-tags` options for gocritic
5. Enable almost all gocritic checks for the project
6. Make rich debugging for gocritic
7. Meticulously validate gocritic checks config
2019-01-09 09:51:48 +03:00
Denis Isaev
7705f82591 Update megacheck to the latest version
Also do following improvements:
  - show proper sublinter name for megacheck sublinters
  - refactor and make more simple and robust megacheck
  merging/optimizing
  - improve handling of unknown linter names in //nolint directives
  - minimize diff of our megacheck version from the upstream,
  https://github.com/golang/go/issues/29612 blocks usage of the upstream
  version
  - support the new `stylecheck` linter
  - improve tests coverage for megacheck and nolint related cases
  - update and use upstream versions of unparam and interfacer instead of forked
  ones
  - don't use golangci/tools repo anymore
  - fix newly found issues after updating linters

Also should be noted that megacheck works much faster and consumes less
memory in the newest release, therefore golangci-lint works noticeably
faster and consumes less memory for large repos.

Relates: #314
2019-01-08 21:16:15 +03:00
Denis Isaev
93b2d10537 docs: make readme after the last README fix 2019-01-08 10:02:12 +03:00
Zamiell
50abb24e68 fixing readme bug 2019-01-08 10:02:12 +03:00
David López
d9a1bdb831 gocritic: fix code to pass newly added gocritic checks
Fix code to pass newly added gocritic checks, mainly pointer receivers and import shadows
2019-01-08 09:59:24 +03:00
Isaev Denis
21a8185fd2 remove extra --version from README.md 2019-01-08 09:59:24 +03:00
David López
0192cb3955 gocritic: update default checks list
Update gocritic default checks list, add the current gocritic stable checks list
2019-01-08 09:59:24 +03:00
Denis Isaev
658f4addbd
docs: fix errcheck ignore example 2018-12-23 13:03:17 +03:00
Denis Isaev
609de3254c Fix #331: fix errcheck "ignore" config directive.
Make tests for "ignore" and "exclude" directives.
Mark all hidden command-line options as deprecated.
v1.12.5
2018-12-23 12:33:41 +03:00
Denis Isaev
21c2590ba8
Fix #318: better validate linters and help commands v1.12.4 2018-12-22 15:55:53 +03:00
Denis Isaev
a4a7100011 Fix #263: update goimports
The new version of goimports works 100x faster
with go modules. Also it has some new features:

$ git cherry -v 6c7e314b6563 92cdcd90bf52 | fgrep imports
+ 5bbcdc15656ef390fab5dd6e8daf95354f7171e3 imports: redesign fixImports
+ ee45598d2ff288037f53f9e13ae0b1a6e2165ad5 imports: create named imports for name/path mismatches (again)
+ 4c53570e0460bc32468f75bf9dd71c018d03bfa9 imports: ignore globals in different packages
+ 1d424dbce8dd500e9e449fd3ff9d0668c09e2ae1 imports: clean up customization seam
+ 6a3e9aa2ab7749d72d1006ee484271b4a11f96c2 imports: fix renamed sibling imports
+ 5f4a60f04f23ac48e0665f257413ae3eacf339be imports: fix renamed sibling imports more
+ bbccd8cae4a9a47e0f978e03ff4b5df88a9fde1e imports: use go/packages, support modules
+ d4971274fe382404aee0e8c163af974f2bf738e6 imports: don't remove imports that conflict with globals
2018-12-22 15:50:16 +03:00
Denis Isaev
c9c0646265 dev: fix go.sum and don't skip test TestGoimportsLocal 2018-12-22 15:34:16 +03:00
David López
37e6995b45 lintpack/gocritic: update lintpack & gocritic versions
update lintpack & gocritic versions to support all the new gocritic checks
2018-12-22 15:34:16 +03:00
Denis Isaev
f5902eb01f
docs: regenerate README.md 2018-12-22 15:26:06 +03:00
Denis Isaev
4f0fddf4fe
add tests for abs path args 2018-12-22 14:16:31 +03:00
Alexander Morozov
baa2415ddf Use go env GOPATH for installation
People these days tend to use default GOPATH, so environment variable will be empty.

go env GOPATH will work for all cases

Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
2018-12-22 14:05:24 +03:00
Koichi Shiraishi
85cf013e2b README: run 'make readme' 2018-12-22 14:00:49 +03:00
Koichi Shiraishi
50a41f4ec3 README.tmpl: fix 'No newline at end of file' git suggestion 2018-12-22 14:00:49 +03:00
Koichi Shiraishi
eda89bda2d README.tmpl: add istio/istio to "Trusted By" section 2018-12-22 14:00:49 +03:00
David Golub
7063a9d870 Fix errors when specifying absolute path 2018-12-22 13:44:30 +03:00
Denis Isaev
99329fb637
dev: remove extra logging in skip dirs processor 2018-12-22 13:44:16 +03:00
Denis Isaev
09c65fcf42 rework modules download mode option 2018-12-22 13:37:17 +03:00
Nicolae Vartolomei
b693037af0 Allow configure module download mode 2018-12-22 13:37:17 +03:00
Denis Isaev
7dfb9cff3d rework skip dir algorithm 2018-12-22 12:24:43 +03:00
Sean Chittenden
441bdb33d1 Fix the skip-dirs option.
Prior to this change the SkipDir runner was not skipping files such as
`foo/bar/baz.go` with a `skip-dir` entry of `foo/bar` when the `run`
command was invoked with an argument of `foo/...`.  This is both a
surprising and problematic behavior change.

The pathology was:

1. `shouldPassIssue()` was receiving an input like `foo/bar/baz.go`
2. `shouldPassIssue()` would call `p.getLongestArgRelativeIssuePath()`
   which was returning `bar`, not `foo/bar` as expected.
3. The reason for this was because inside of
   `getLongestArgRelativeIssuePath()` it was trimming the prefix that
   matched the path prefix (e.g. `foo/`).

If you have the file structure:

  - foo/bar/baz.go
  - bur/bar/baz.go

There is no way to isolate `foo/bar` from `bur/baz` without strictly
controlling both your `skip-dirs` configuration and the arguments to
`run`.

The rest of the logic to skip files that don't match `run`'s argument
is valid, however the regexp should be evaluated based on the
`filepath.Dir()` of the input (e.g. `foo/bar`) and not the truncated
version of the issue's filepath.

Fixes: #301
2018-12-22 12:24:43 +03:00
Aneesh Agrawal
e72fe0540d Add .pre-commit-hooks.yaml
This file will allow using golangci-lint with https://pre-commit.com.
2018-12-22 10:37:11 +03:00
Ben Wells
ef78643830 Fix typo in gometalinter comparison example 2018-11-28 08:31:11 +03:00