Integrations

Editor Integration

GoLand

Starting from version 2025.1, GoLand has built-in support of golangci-lint. For IntelliJ IDEA with the Go plugin, please install the plugin.

Both v1 and v2 versions are supported.

Visual Studio Code

Install the extension.

Recommended settings for those who installed golangci-lint manually
"go.lintTool": "golangci-lint",
"go.lintFlags": [
  "--path-mode=abs",
  "--fast-only"
],
"go.formatTool": "custom",
"go.alternateTools": {
  "customFormatter": "golangci-lint"
},
"go.formatFlags": [
  "fmt",
  "--stdin"
]

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

Recommended settings for those who installed golangci-lint via extension

Install golangci-lint-v2 via the Go: Install/Update Tools command after setting these configs. This will enable golangci-lint v1 to co-exist with v2. And use the following settings:

"go.lintTool": "golangci-lint-v2",
"go.lintFlags": [
  "--path-mode=abs",
  "--fast-only"
],
"go.formatTool": "custom",
"go.alternateTools": {
  "customFormatter": "golangci-lint-v2"
},
"go.formatFlags": [
  "fmt",
  "--stdin"
]

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

GNU Emacs

There are available plugins:

Vim

The following plugins support golangci-lint:

LSP Server

golangci-lint-langserver (NeoVim, Vim, Emacs, …)

Sublime Text

There is a plugin for SublimeLinter.

Shell Completion

Golangci-lint can generate Bash, fish, PowerShell, and Zsh completion files.

See the instructions on golangci-lint completion <YOUR_SHELL> --help (replace <YOUR_SHELL> with your favorite one).

Bash & 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

CI Integration

Check out our documentation for CI integrations.

Last updated on