diff --git a/CODE_STYLE.md b/CODE_STYLE.md index e8208172c..1f40c76fc 100644 --- a/CODE_STYLE.md +++ b/CODE_STYLE.md @@ -1,21 +1,23 @@ # Code Style -We follow the standard Go style using gofmt, but with a few extra +We follow the standard Go style using goimports, but with a few extra considerations. ## Linters -We use `gometalinter` to run a number of linters, the exact list can be found -in [linter.json](linter.json). Some of these are slow and expensive to run, but -a subset can be found in [linter-fast.json](linter-fast.json) that run quickly -enough to be run as part of an IDE. +We use `golangci-lint` to run a number of linters, the exact list can be found +under linters in [.golangci.yml](.golangci.yml). +[Installation](https://github.com/golangci/golangci-lint#install) and [Editor +Integration](https://github.com/golangci/golangci-lint#editor-integration) for +it can be found in the readme of golangci-lint. For rare cases where a linter is giving a spurious warning, it can be disabled -for that line or statement using a [comment directive](https://github.com/alecthomas/gometalinter#comment-directives), e.g. -`// nolint: gocyclo`. This should be used sparingly and only when its clear -that the lint warning is spurious. +for that line or statement using a [comment +directive](https://github.com/golangci/golangci-lint#nolint), e.g. `var +bad_name int //nolint:golint,unused`. This should be used sparingly and only +when its clear that the lint warning is spurious. -The linters are vendored, and can be run using [scripts/find-lint.sh](scripts/find-lint.sh) +The linters can be run using [scripts/find-lint.sh](scripts/find-lint.sh) (see file for docs) or as part of a build/test/lint cycle using [scripts/build-test-lint.sh](scripts/build-test-lint.sh). @@ -82,9 +84,9 @@ sets up linting correctly: ```json { - "go.gopath": "${workspaceRoot}:${workspaceRoot}/vendor", - "go.lintOnSave": "workspace", - "go.lintTool": "gometalinter", - "go.lintFlags": ["--config=linter-fast.json", "--concurrency=5"] + "go.lintTool":"golangci-lint", + "go.lintFlags": [ + "--fast" + ] } ```