372 lines
13 KiB
Text
372 lines
13 KiB
Text
===============================================================================
|
|
ALE Go Integration *ale-go-options*
|
|
|
|
|
|
===============================================================================
|
|
Integration Information
|
|
|
|
The `gometalinter` linter is disabled by default. ALE enables `gofmt`,
|
|
`golint` and `go vet` by default. It also supports `staticcheck`, `go
|
|
build`, `gosimple`, `golangserver`.
|
|
|
|
To enable `gometalinter`, update |g:ale_linters| as appropriate:
|
|
>
|
|
" Enable all of the linters you want for Go.
|
|
let g:ale_linters = {'go': ['gometalinter', 'gofmt']}
|
|
<
|
|
A possible configuration is to enable `gometalinter` and `gofmt` but paired
|
|
with the `--fast` option, set by |g:ale_go_gometalinter_options|. This gets you
|
|
the benefit of running a number of linters, more than ALE would by default,
|
|
while ensuring it doesn't run any linters known to be slow or resource
|
|
intensive.
|
|
|
|
g:ale_go_go_executable *g:ale_go_go_executable*
|
|
*b:ale_go_go_executable*
|
|
|
|
Type: |String|
|
|
Default: `'go'`
|
|
|
|
The executable that will be run for the `gobuild` and `govet` linters, and
|
|
the `gomod` fixer.
|
|
|
|
|
|
g:ale_go_go111module *g:ale_go_go111module*
|
|
*b:ale_go_go111module*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
Override the value of the `$GO111MODULE` environment variable for
|
|
golang tools.
|
|
|
|
|
|
===============================================================================
|
|
bingo *ale-go-bingo*
|
|
|
|
g:ale_go_bingo_executable *g:ale_go_bingo_executable*
|
|
*b:ale_go_bingo_executable*
|
|
Type: |String|
|
|
Default: `'bingo'`
|
|
|
|
Location of the bingo binary file.
|
|
|
|
|
|
g:ale_go_bingo_options *g:ale_go_bingo_options*
|
|
*b:ale_go_bingo_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
|
|
===============================================================================
|
|
cspell *ale-go-cspell*
|
|
|
|
See |ale-cspell-options|
|
|
|
|
===============================================================================
|
|
gobuild *ale-go-gobuild*
|
|
|
|
g:ale_go_gobuild_options *g:ale_go_gobuild_options*
|
|
*b:ale_go_gobuild_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the gobuild linter.
|
|
They are injected directly after "go test".
|
|
|
|
|
|
===============================================================================
|
|
gofmt *ale-go-gofmt*
|
|
|
|
g:ale_go_gofmt_options *g:ale_go_gofmt_options*
|
|
*b:ale_go_gofmt_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the gofmt fixer.
|
|
|
|
|
|
===============================================================================
|
|
gofumpt *ale-go-gofumpt*
|
|
|
|
g:ale_go_gofumpt_executable *g:ale_go_gofumpt_executable*
|
|
*b:ale_go_gofumpt_executable*
|
|
Type: |String|
|
|
Default: `'gofumpt'`
|
|
|
|
Executable to run to use as the gofumpt fixer.
|
|
|
|
g:ale_go_gofumpt_options *g:ale_go_gofumpt_options*
|
|
*b:ale_go_gofumpt_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
Options to pass to the gofumpt fixer.
|
|
|
|
|
|
===============================================================================
|
|
golangci-lint *ale-go-golangci-lint*
|
|
|
|
`golangci-lint` is a `lint_file` linter, which only lints files that are
|
|
written to disk. This differs from the default behavior of linting the buffer.
|
|
See: |ale-lint-file|
|
|
|
|
g:ale_go_golangci_lint_executable *g:ale_go_golangci_lint_executable*
|
|
*b:ale_go_golangci_lint_executable*
|
|
Type: |String|
|
|
Default: `'golangci-lint'`
|
|
|
|
The executable that will be run for golangci-lint.
|
|
|
|
|
|
g:ale_go_golangci_lint_options *g:ale_go_golangci_lint_options*
|
|
*b:ale_go_golangci_lint_options*
|
|
Type: |String|
|
|
Default: `'--enable-all'`
|
|
|
|
This variable can be changed to alter the command-line arguments to the
|
|
golangci-lint invocation.
|
|
|
|
|
|
g:ale_go_golangci_lint_package *g:ale_go_golangci_lint_package*
|
|
*b:ale_go_golangci_lint_package*
|
|
Type: |Number|
|
|
Default: `0`
|
|
|
|
When set to `1`, the whole Go package will be checked instead of only the
|
|
current file.
|
|
|
|
|
|
===============================================================================
|
|
golangserver *ale-go-golangserver*
|
|
|
|
g:ale_go_langserver_executable *g:ale_go_langserver_executable*
|
|
*b:ale_go_langserver_executable*
|
|
Type: |String|
|
|
Default: `'go-langserver'`
|
|
|
|
Location of the go-langserver binary file.
|
|
|
|
|
|
g:ale_go_langserver_options *g:ale_go_langserver_options*
|
|
*b:ale_go_langserver_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
Additional options passed to the go-langserver command. Note that the
|
|
`-gocodecompletion` option is ignored because it is handled automatically
|
|
by the |g:ale_completion_enabled| variable.
|
|
|
|
|
|
===============================================================================
|
|
golines *ale-go-golines*
|
|
|
|
g:ale_go_golines_executable *g:ale_go_lines_executable*
|
|
*b:ale_go_lines_executable*
|
|
Type: |String|
|
|
Default: `'golines'`
|
|
|
|
Location of the golines binary file
|
|
|
|
g:ale_go_golines_options *g:ale_go_golines_options*
|
|
*b:ale_go_golines_options*
|
|
Type: |String|
|
|
Default: ''
|
|
|
|
Additional options passed to the golines command. By default golines has
|
|
--max-length=100 (lines above 100 characters will be wrapped)
|
|
|
|
|
|
===============================================================================
|
|
golint *ale-go-golint*
|
|
|
|
g:ale_go_golint_executable *g:ale_go_golint_executable*
|
|
*b:ale_go_golint_executable*
|
|
Type: |String|
|
|
Default: `'golint'`
|
|
|
|
This variable can be set to change the golint executable path.
|
|
|
|
|
|
g:ale_go_golint_options *g:ale_go_golint_options*
|
|
*b:ale_go_golint_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the golint linter.
|
|
|
|
|
|
===============================================================================
|
|
gometalinter *ale-go-gometalinter*
|
|
|
|
`gometalinter` is a `lint_file` linter, which only lints files that are
|
|
written to disk. This differs from the default behavior of linting the buffer.
|
|
See: |ale-lint-file|
|
|
|
|
g:ale_go_gometalinter_executable *g:ale_go_gometalinter_executable*
|
|
*b:ale_go_gometalinter_executable*
|
|
Type: |String|
|
|
Default: `'gometalinter'`
|
|
|
|
The executable that will be run for gometalinter.
|
|
|
|
|
|
g:ale_go_gometalinter_options *g:ale_go_gometalinter_options*
|
|
*b:ale_go_gometalinter_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be changed to alter the command-line arguments to the
|
|
gometalinter invocation.
|
|
|
|
Since `gometalinter` runs a number of linters that can consume a lot of
|
|
resources it's recommended to set this option to a value of `--fast` if you
|
|
use `gometalinter` as one of the linters in |g:ale_linters|. This disables a
|
|
number of linters known to be slow or consume a lot of resources.
|
|
|
|
|
|
g:ale_go_gometalinter_lint_package *g:ale_go_gometalinter_lint_package*
|
|
*b:ale_go_gometalinter_lint_package*
|
|
Type: |Number|
|
|
Default: `0`
|
|
|
|
When set to `1`, the whole Go package will be checked instead of only the
|
|
current file.
|
|
|
|
|
|
===============================================================================
|
|
gopls *ale-go-gopls*
|
|
|
|
gopls is the official Go language server, and is enabled for use with ALE by
|
|
default.
|
|
|
|
To install the latest stable version of `gopls` to your `$GOPATH`, try the
|
|
following command: >
|
|
|
|
GO111MODULE=on go get golang.org/x/tools/gopls@latest
|
|
<
|
|
If `$GOPATH` is readable by ALE, it should probably work without you having to
|
|
do anything else. See the `gopls` README file for more information:
|
|
|
|
https://github.com/golang/tools/blob/master/gopls/README.md
|
|
|
|
|
|
g:ale_go_gopls_executable *g:ale_go_gopls_executable*
|
|
*b:ale_go_gopls_executable*
|
|
Type: |String|
|
|
Default: `'gopls'`
|
|
|
|
See |ale-integrations-local-executables|
|
|
|
|
ALE will search for `gopls` in locally installed directories first by
|
|
default, and fall back on a globally installed `gopls` if it can't be found
|
|
otherwise.
|
|
|
|
|
|
g:ale_go_gopls_options *g:ale_go_gopls_options*
|
|
*b:ale_go_gopls_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
Command-line options passed to the gopls executable. See `gopls -h`.
|
|
|
|
|
|
g:ale_go_gopls_init_options *g:ale_go_gopls_init_options*
|
|
*b:ale_go_gopls_init_options*
|
|
Type: |Dictionary|
|
|
Default: `{}`
|
|
|
|
LSP initialization options passed to gopls. This can be used to configure
|
|
the behaviour of gopls.
|
|
|
|
Example: >
|
|
let g:ale_go_gopls_init_options = {'ui.diagnostic.analyses': {
|
|
\ 'composites': v:false,
|
|
\ 'unusedparams': v:true,
|
|
\ 'unusedresult': v:true,
|
|
\ }}
|
|
<
|
|
|
|
For a full list of supported analyzers, see:
|
|
https://github.com/golang/tools/blob/master/gopls/doc/analyzers.md
|
|
|
|
|
|
g:ale_go_gopls_use_global *g:ale_go_gopls_use_global*
|
|
*b:ale_go_gopls_use_global*
|
|
Type: |String|
|
|
Default: `get(g:, 'ale_use_global_executables', 0)`
|
|
|
|
See |ale-integrations-local-executables|
|
|
|
|
|
|
===============================================================================
|
|
govet *ale-go-govet*
|
|
|
|
g:ale_go_govet_options *g:ale_go_govet_options*
|
|
*b:ale_go_govet_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the go vet linter.
|
|
|
|
|
|
===============================================================================
|
|
revive *ale-go-revive*
|
|
|
|
g:ale_go_revive_executable *g:ale_go_revive_executable*
|
|
*b:ale_go_revive_executable*
|
|
Type: |String|
|
|
Default: `'revive'`
|
|
|
|
This variable can be set to change the revive executable path.
|
|
|
|
|
|
g:ale_go_revive_options *g:ale_go_revive_options*
|
|
*b:ale_go_revive_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the revive
|
|
|
|
|
|
===============================================================================
|
|
staticcheck *ale-go-staticcheck*
|
|
|
|
g:ale_go_staticcheck_executable *g:ale_go_staticcheck_executable*
|
|
*b:ale_go_staticcheck_executable*
|
|
Type: |String|
|
|
Default: `'staticcheck'`
|
|
|
|
See |ale-integrations-local-executables|
|
|
|
|
ALE will search for `staticcheck` in locally installed directories first by
|
|
default, and fall back on a globally installed `staticcheck` if it can't be
|
|
found otherwise.
|
|
|
|
|
|
g:ale_go_staticcheck_options *g:ale_go_staticcheck_options*
|
|
*b:ale_go_staticcheck_options*
|
|
Type: |String|
|
|
Default: `''`
|
|
|
|
This variable can be set to pass additional options to the staticcheck
|
|
linter.
|
|
|
|
|
|
g:ale_go_staticcheck_lint_package *g:ale_go_staticcheck_lint_package*
|
|
*b:ale_go_staticcheck_lint_package*
|
|
Type: |Number|
|
|
Default: `1`
|
|
|
|
When set to `1`, the whole Go package will be checked instead of only the
|
|
current file.
|
|
|
|
|
|
g:ale_go_staticcheck_use_global *g:ale_go_staticcheck_use_global*
|
|
*b:ale_go_staticcheck_use_global*
|
|
Type: |String|
|
|
Default: `get(g:, 'ale_use_global_executables', 0)`
|
|
|
|
See |ale-integrations-local-executables|
|
|
|
|
|
|
===============================================================================
|
|
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|