Files
ale/doc/ale-go.txt
w0rp 400857d758 Implement Lua ALE setup & overhaul documentation
1. Add ale.setup and ale.setup.buffer for pure Lua configuration.
2. Update many global settings to use Booleans instead of numbers to
   make types easiert to work with in Lua.
3. Radically reformat documentation and fix errors to make
   documentation more usable for Neovim users.
2025-03-27 12:40:11 +00:00

399 lines
15 KiB
Plaintext

===============================================================================
ALE Go Integration *ale-go-options*
===============================================================================
Integration Information
ALE enables `gofmt`, `gopls` and `go vet` by default. It also supports `staticcheck`,
`go build, ``gosimple`, `golangserver`, and `golangci-lint.
To enable `golangci-lint`, update |g:ale_linters| as appropriate.
A possible configuration is to enable golangci-lint and `gofmt:
>
" Enable all of the linters you want for Go.
let g:ale_linters = {'go': ['golangci-lint', 'gofmt']}
<
*ale-options.go_go_executable*
*g:ale_go_go_executable*
*b:ale_go_go_executable*
go_go_executable
g:ale_go_go_executable
Type: |String|
Default: `'go'`
The executable that will be run for the `gobuild` and `govet` linters, and
the `gomod` fixer.
*ale-options.go_go111module*
*g:ale_go_go111module*
*b:ale_go_go111module*
go_go111module
g:ale_go_go111module
Type: |String|
Default: `''`
Override the value of the `$GO111MODULE` environment variable for
golang tools.
===============================================================================
bingo *ale-go-bingo*
*ale-options.go_bingo_executable*
*g:ale_go_bingo_executable*
*b:ale_go_bingo_executable*
go_bingo_executable
g:ale_go_bingo_executable
Type: |String|
Default: `'bingo'`
Location of the bingo binary file.
*ale-options.go_bingo_options*
*g:ale_go_bingo_options*
*b:ale_go_bingo_options*
go_bingo_options
g:ale_go_bingo_options
Type: |String|
Default: `''`
===============================================================================
cspell *ale-go-cspell*
See |ale-cspell-options|
===============================================================================
gobuild *ale-go-gobuild*
*ale-options.go_gobuild_options*
*g:ale_go_gobuild_options*
*b:ale_go_gobuild_options*
go_gobuild_options
g: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*
*ale-options.go_gofmt_options*
*g:ale_go_gofmt_options*
*b:ale_go_gofmt_options*
go_gofmt_options
g:ale_go_gofmt_options
Type: |String|
Default: `''`
This variable can be set to pass additional options to the gofmt fixer.
===============================================================================
gofumpt *ale-go-gofumpt*
*ale-options.go_gofumpt_executable*
*g:ale_go_gofumpt_executable*
*b:ale_go_gofumpt_executable*
go_gofumpt_executable
g:ale_go_gofumpt_executable
Type: |String|
Default: `'gofumpt'`
Executable to run to use as the gofumpt fixer.
*ale-options.go_gofumpt_options*
*g:ale_go_gofumpt_options*
*b:ale_go_gofumpt_options*
go_gofumpt_options
g: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|
*ale-options.go_golangci_lint_executable*
*g:ale_go_golangci_lint_executable*
*b:ale_go_golangci_lint_executable*
go_golangci_lint_executable
g:ale_go_golangci_lint_executable
Type: |String|
Default: `'golangci-lint'`
The executable that will be run for golangci-lint.
*ale-options.go_golangci_lint_options*
*g:ale_go_golangci_lint_options*
*b:ale_go_golangci_lint_options*
go_golangci_lint_options
g:ale_go_golangci_lint_options
Type: |String|
Default: `''`
This variable can be changed to alter the command-line arguments to the
golangci-lint invocation.
*ale-options.go_golangci_lint_package*
*g:ale_go_golangci_lint_package*
*b:ale_go_golangci_lint_package*
go_golangci_lint_package
g: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*
*ale-options.go_langserver_executable*
*g:ale_go_langserver_executable*
*b:ale_go_langserver_executable*
go_langserver_executable
g:ale_go_langserver_executable
Type: |String|
Default: `'go-langserver'`
Location of the go-langserver binary file.
*ale-options.go_langserver_options*
*g:ale_go_langserver_options*
*b:ale_go_langserver_options*
go_langserver_options
g: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*
*ale-options.go_golines_executable*
*g:ale_go_golines_executable*
*b:ale_go_lines_executable*
go_golines_executable
g:ale_go_golines_executable
Type: |String|
Default: `'golines'`
Location of the golines binary file
*ale-options.go_golines_options*
*g:ale_go_golines_options*
*b:ale_go_golines_options*
go_golines_options
g: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)
===============================================================================
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
-------------------------------------------------------------------------------
Options
*ale-options.go_gopls_executable*
*g:ale_go_gopls_executable*
*b:ale_go_gopls_executable*
go_gopls_executable
g: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.
*ale-options.go_gopls_options*
*g:ale_go_gopls_options*
*b:ale_go_gopls_options*
go_gopls_options
g:ale_go_gopls_options
Type: |String|
Default: `''`
Command-line options passed to the gopls executable. See `gopls -h`.
*ale-options.go_gopls_fix_executable*
*g:ale_go_gopls_fix_executable*
*b:ale_go_gopls_fix_executable*
go_gopls_fix_executable
g:ale_go_gopls_fix_executable
Type: |String|
Default: `'gopls'`
Executable to run to use as the gopls fixer.
*ale-options.go_gopls_fix_options*
*g:ale_go_gopls_fix_options*
*b:ale_go_gopls_fix_options*
go_gopls_fix_options
g:ale_go_gopls_fix_options
Type: |String|
Default: `''`
Options to pass to the gopls fixer.
*ale-options.go_gopls_init_options*
*g:ale_go_gopls_init_options*
*b:ale_go_gopls_init_options*
go_gopls_init_options
g:ale_go_gopls_init_options
Type: |Dictionary|
Default: `{}`
LSP initialization options passed to gopls. This can be used to configure
the behaviour of gopls.
For 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
*ale-options.go_gopls_use_global*
*g:ale_go_gopls_use_global*
*b:ale_go_gopls_use_global*
go_gopls_use_global
g:ale_go_gopls_use_global
Type: |String|
Default: `get(g:, 'ale_use_global_executables', 0)`
See |ale-integrations-local-executables|
===============================================================================
govet *ale-go-govet*
*ale-options.go_govet_options*
*g:ale_go_govet_options*
*b:ale_go_govet_options*
go_govet_options
g: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*
*ale-options.go_revive_executable*
*g:ale_go_revive_executable*
*b:ale_go_revive_executable*
go_revive_executable
g:ale_go_revive_executable
Type: |String|
Default: `'revive'`
This variable can be set to change the revive executable path.
*ale-options.go_revive_options*
*g:ale_go_revive_options*
*b:ale_go_revive_options*
go_revive_options
g:ale_go_revive_options
Type: |String|
Default: `''`
This variable can be set to pass additional options to the revive
===============================================================================
staticcheck *ale-go-staticcheck*
*ale-options.go_staticcheck_executable*
*g:ale_go_staticcheck_executable*
*b:ale_go_staticcheck_executable*
go_staticcheck_executable
g: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.
*ale-options.go_staticcheck_options*
*g:ale_go_staticcheck_options*
*b:ale_go_staticcheck_options*
go_staticcheck_options
g:ale_go_staticcheck_options
Type: |String|
Default: `''`
This variable can be set to pass additional options to the staticcheck
linter.
*ale-options.go_staticcheck_lint_package*
*g:ale_go_staticcheck_lint_package*
*b:ale_go_staticcheck_lint_package*
go_staticcheck_lint_package
g: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.
*ale-options.go_staticcheck_use_global*
*g:ale_go_staticcheck_use_global*
*b:ale_go_staticcheck_use_global*
go_staticcheck_use_global
g: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: