golangci-lint

Integrations

Editor Integration

  1. Go for Visual Studio Code. Recommended settings for VS Code are:

    "go.lintTool":"golangci-lint",
    "go.lintFlags": [
    "--fast"
    ]

    Using it in an editor without --fast can freeze your editor. Golangci-lint automatically discovers .golangci.yml config for edited file: you don't need to configure it in VS Code settings.

  2. Sublime Text - plugin for SublimeLinter.

  3. GoLand

    • Add File Watcher using existing golangci-lint template.
    • If your version of GoLand does not have the golangci-lint File Watcher template you can configure your own and use arguments run --disable=typecheck $FileDir$.
  4. GNU Emacs

  5. Vim

  6. Atom - go-plus supports golangci-lint.

Shell Completion

golangci-lint can generate bash completion file.

macOS

There are two versions of bash-completion, v1 and v2. V1 is for Bash 3.2 (which is the default on macOS), and v2 is for Bash 4.1+. The golangci-lint completion script doesn’t work correctly with bash-completion v1 and Bash 3.2. It requires bash-completion v2 and Bash 4.1+. Thus, to be able to correctly use golangci-lint completion on macOS, you have to install and use Bash 4.1+ (instructions). The following instructions assume that you use Bash 4.1+ (that is, any Bash version of 4.1 or newer).

Install bash-completion v2:

brew install bash-completion@2
echo 'export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"' >>~/.bashrc
echo '[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"' >>~/.bashrc
exec bash # reload and replace (if it was updated) shell
type _init_completion && echo "completion is OK" # verify that bash-completion v2 is correctly installed

Add golangci-lint bash completion:

echo 'source <(golangci-lint completion bash)' >>~/.bashrc
source ~/.bashrc

Linux

See kubectl instructions and don't forget to replace kubectl with golangci-lint.

CI Integration

See our GitHub Action.

Edit this page on GitHub