=============================================================================== 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: