100 Commits

Author SHA1 Message Date
Daniel Helfand
a999403d3a change increase to increasing in timeout error 2020-02-18 11:42:58 -05:00
Eric Wohltman
cc8b9101d6 Fix test failure from gomnd 2020-01-20 09:37:58 -05:00
Isaev Denis
6237e59c97
dev: use goprintffuncname, gomnd and rowserrcheck ()
Order linters in config in alphabetical order.
Support gomnd configuration.
2020-01-19 19:55:29 +03:00
Isaev Denis
5f1096cf80
add goprintffuncname linter () 2020-01-19 16:46:51 +03:00
gaojingyu
e93138f00f Add rows.Err weather checked linter ()
Add rowserrcheck

Co-authored-by: Isaev Denis <idenx@yandex.com>
2020-01-08 14:08:16 +03:00
David Braley
be3c688da4 I473 ()
Support custom linters integration by plugins

Co-authored-by: Isaev Denis <idenx@yandex.com>
2020-01-08 13:51:55 +03:00
sayboras
bd2921655a Added go-mnd linter ()
* Initial commit

* Fixed goimports

* Update pkg/golinters/mnd.go

Co-Authored-By: Bot from GolangCI <42910462+golangcibot@users.noreply.github.com>

* Run goimports

* Update pkg/golinters/mnd.go

Co-Authored-By: Bot from GolangCI <42910462+golangcibot@users.noreply.github.com>

* Add prefix for goimport local

* Run make README.md

* Incorporate review comments
Add test cases

* Update readme

* Update the description

* Removed subpath in local-prefixes

* Update readme
2019-11-15 19:08:43 -05:00
Simon Sawert
0e5b7a04d5 Bump wsl to v2.0.0 2019-11-15 18:55:54 -05:00
Simon Sawert
8c1e2f004e Revert "Bump wsl to v1.2.7"
This reverts commit 14ebae29060f7c7be67d31a559986aa8afe7cbb0.
2019-11-15 18:55:54 -05:00
Simon Sawert
14ebae2906 Bump wsl to v1.2.7 2019-11-10 19:07:16 -05:00
sayboras
93c0eebfa1 Fixed test deadline unit test 2019-11-07 17:22:13 -05:00
Daniel Caballero
98f60ebaa3 deadline is now deprecated, but should be taking its value from the configuration if set ()
* test that demostrates that deadline is not working if comes from the config

* overriding timeout with deadline when only deadline is different from its default value

* tests were not passing. default value for Deadline, that now only comes from config, is 0. Plus static check is going to fail because of deprecated cfg used

* golangci should use the latest golangci-lint version, that is the one deprecating deadline in favour of timeout

* README updated - looks the ci config in this project is used to generate usage instructions.. great!
2019-10-15 14:11:14 +03:00
Simon Sawert
22df2d739f Update WSL to v1.2.5 ()
* Update WSL to v1.2.4

* Fix false positive multiline case
* Fix false positive slice expression
* Fix false positive index expression
* Support to configure/allow cuddle declarations
* Support to configurre/allow case blocks to end with whitespace
* Support cuddle defer http body close

* Re-generate README.md

* Update WSL to v1.2.5

* Support output comments for example functions

* Fix bad field tag for config
2019-10-14 22:50:34 +03:00
Isaev Denis
9ba730e989
Make incremental analysis ()
Cache linting results. Reanalyze only changed packages
and packages tree depending on them.

Fixes , fixes 
2019-10-13 17:40:51 +03:00
Denis Titusov
0cc87df732 Rename deadline option to timeout and mark deadline as deprecated. () 2019-10-08 09:37:54 +03:00
Trevor Pounds
ee2e17f7e9 Update to latest securego/gosec ()
* Update to latest securego/gosec.

* Fix gosec G204 warnings.

* Add gosec G204 test.
2019-10-08 09:36:21 +03:00
Simon Sawert
d4b4ad8dfe Update WSL to v1.2.1 ()
* Update WSL to v1.2.1

* Add new tests for fixed false positives, don't derive defaults from WSL
2019-10-07 21:22:44 -04:00
Simon Sawert
3e09174bd2 Add WSL linter ()
* Add WSL linter

* Use v1.0.0 tag for wsl

* Don't add specific test file skip, use mutex to add errors

* Fix goimports error

* Add more tests for WSL, bump WSL version

* Fix bad go.sum (go mod tidy)
2019-10-04 16:03:40 -04:00
Trevor Pounds
30864f8818 Add more gocognit tests. 2019-10-04 11:29:53 -04:00
NiseVoid
fbbd24575f Update whitespace to v0.0.4 () 2019-10-04 15:12:07 +03:00
Nuruddin Ashr
92ec1a1f4c Add gocognit linter ()
* Add gocognit linter

* Remove gocognit to the golangci config

* Make changes on README.md

* Remove gocognit from megacheck benchtest

* Remove command line flags

* Comply with new style
2019-10-03 16:22:06 +03:00
Trevor Pounds
6d786b50ae Group imports by package. 2019-10-01 18:09:47 -04:00
Isaev Denis
95ec0cf21e
dramatically reduce memory usage ()
Run all linters per package. It allows unloading package data when it's
processed. It dramatically reduces memory (and CPU because of GC) usage.

Relates: 
2019-09-30 16:19:41 +03:00
NiseVoid
9976bdcc5e Update whitespace 2019-09-23 12:16:06 -04:00
Denis Isaev
3aade55e05 Reduce memory usage of go/analysis 2019-09-23 09:52:54 +03:00
Trevor Pounds
a653032409 Fix flaky cgo test failures. ()
Fixes flaky cgo test failures caused by duplicate printf
format checks in staticcheck and go vet that use slightly
different reporting formats.
2019-09-20 19:05:01 +03:00
Trevor Pounds
92168d033d Add dogsled linter. () 2019-09-17 08:44:53 +03:00
Isaev Denis
6a979fb40d
Update staticcheck and cache go/analysis facts ()
* update staticcheck

Don't fork staticcheck: use the upstream version.
Remove unneeded SSA loading.

* Cache go/analysis facts

Don't load unneeded packages for go/analysis.
Repeated run of go/analysis linters now 10x faster
(2s vs 20s on this repo) than before.
2019-09-17 08:42:16 +03:00
Isaev Denis
c9a9255238
Speed up packages loading ()
Don't perform extra go env calls in go/packages.
Load only needed go env vars in golangci-lint.
Stay in sync by enabled analyzers in go vet: remove nilness and
atomicalign analyzers, add errorsas analyzer.
Don't build SSA for govet.

Standalone govet runs 25% faster than before. All runs can be 5-10% faster
than before.
Relates: 
2019-09-14 18:48:18 +03:00
Matouš Dzivjak
58845813da linters: add Godox linter support ()
Godox is linter for TODOs and FIXMEs left in the code.

Signed-off-by: Matous Dzivjak <matous.dzivjak@kiwi.com>
2019-09-11 16:53:40 +03:00
Isaev Denis
f1c1dbfab4
Feature/enable autofix on whitespace ()
The whitespace linter was added in . Enable it and fix found issues.
Add auto-fixing to the whitespace linter.
2019-09-10 16:56:44 +03:00
NiseVoid
c7dee2c0b2 Add whitespace linter () 2019-09-10 13:25:01 +03:00
Isaev Denis
6163a8a790
Support go1.13 ()
Setup Travis CI to run on go 1.12 and 1.13.
Update info about go versions in README.
Rebuild go.mod,go.sum on go1.13.
2019-09-09 21:54:56 +03:00
Cody Ley-Han
a8f2c27d1d Add user supplied error messages in depguard issues () 2019-09-09 20:46:55 +03:00
Isaev Denis
6864b2f764
dev: enable funlen on repo () 2019-09-09 18:07:09 +03:00
NiseVoid
bb82273160 Add funlen linter () 2019-09-09 16:56:30 +03:00
Luke Shumaker
e87a1cfb83 Fix a false-positive from 'unused' ()
This false-positive is not present in the upstream stand-alone 'unused'
2019.1.1 program that golangci-lint uses.

pkg/lint.ContextLoader.filterPackages() did two things:
 1. It removed synthetic "testmain" packages (packages with .Name=="main"
    and .PkgPath ending with ".test")
 2. It removed pruned subsumed copies of packages; if a package with files
    "a.go" and "a_test.go", it results in packages.Load giving us two
    packages:
      - ID=".../a" GoFiles=[a.go]
      - ID=".../a [.../a.test]" GoFiles=[a.go a_test.go]
    The first package is subsumed in the second, and leaving it around
    results in duplicated work, and confuses the 'deadcode' linter.

However, the 'unused' linter relies on both the ".../a" and
".../a [.../a.test]" packages being present.  Pruning them causes it to
panic in some situations, which lead to this workaround:
af6baa5dc1

While that workaround got it to not panic, it causes incorrect results.

So, split filterPackages() in to two functions: filterTestMainPackages()
and filterDuplicatePackages().  The linter.Context.Packages list only
gets filterTestMainPackages() called on it, while linter.Context.Program
and linter.Context.SSAProgram get both filters applied.

With the source of the panic fixed, roll back a few now-unnecessary
commits in go-tools.
2019-09-09 16:10:49 +03:00
Denis Isaev
3d78f64b60 fix : run misspell in text mode
Treat Go source files as plain text files by misspell: it allows detecting
issues in strings, variable names, etc. Also, it's the default mode of
a standalone misspell tool.

Also, implement richer and more stable auto-fix of misspell issues:
now it can fix multiple issues in one line.
2019-06-09 20:14:19 +03:00
Denis Isaev
6508d1623a fix : don't add gofmt "with -s" if not needed
Output
  File is not `gofmt`-ed
insted of
  File is not `gofmt`-ed  with `-s`
when gofmt.simplify == false
2019-06-09 16:22:41 +03:00
Isaev Denis
66d4a16c6a
Merge branch 'master' into lukeshu/reproduce 2019-06-09 13:18:41 +03:00
Gianguido Sorà
72e137e344 Added "bodyclose" support
This commit adds full support for bodyclose linter
(https://github.com/timakin/bodyclose), which checks if an `http.Body`
element is correctly closed after usage.

Since it can be used via `go/analysis', I followed the `govet' example
as suggested by https://github.com/golangci/golangci-lint/wiki/How-to-add-a-custom-linter.

This commit is fully tested, and contains a (flawed) test program which
calls `http.Get()' on `https://google.com' and does not closes its
corresponding `http.Body'.
2019-06-09 13:04:30 +03:00
Luke Shumaker
9ce337296b Makefile: Set GO111MODULE=on for consistency, adjust tests accordingly 2019-06-05 00:52:23 -04:00
Denis Isaev
39f46be460 Fix staticcheck panic on packages that do not compile
The bug was introduced in golangci-lint when migrating staticcheck to go/packages.
Also, thanks to pkg.IllTyped we can analyze as max as we can by
staticcheck.

Relates: , , , 
2019-04-21 11:48:33 +03:00
Denis Isaev
ed0b551070 Fix linting of preprocessed files
Preprocessed files like .qtpl.go quicktemplate Go files can have
//line directives. They map to a source .qtpl file.
This commit fixes linting of such files:
1. don't fail on AST cache loading
2. output Go filename not .qtpl or similar

Also, here we update golint to the upstream version.

Relates: , , , 
2019-04-20 21:50:26 +03:00
Denis Isaev
2c69ef2eb0 Update megacheck (staticcheck) to 2019.1.1
Relates to 
2019-03-31 19:41:37 +03:00
Denis Isaev
fd825488bf
dev: add test for govet custom formatter 2019-03-18 00:31:30 +03:00
Denis Isaev
8c1237b667 Use the newest go vet
The newest go vet based on go/analysis
2019-03-17 23:12:44 +03:00
Denis Isaev
a5c44d2076 go1.11 compatibility fixed 2019-03-05 21:44:52 +03:00
Denis Isaev
be0679ee71 build on go 1.12 and fix go 1.11 compatibility 2019-03-05 21:34:53 +03:00
Denis Isaev
466006b463 go1.12: migrate from perl GOROOT/test/errcheck 2019-03-05 21:20:43 +03:00