Table of Contents
Editor Integration
GoLand
The integration for golangci-lint v2 is currently in work in progress: GO-18363.
Install plugin.
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@2echo 'export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"' >>~/.bashrcecho '[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"' >>~/.bashrcexec bash # reload and replace (if it was updated) shelltype _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)' >>~/.bashrcsource ~/.bashrc
CI Integration
Check out our documentation for CI integrations.
Edit this page on GitHub