gopls: add go_gopls_init_options

This commit is contained in:
Rob Watson 2021-02-03 14:49:27 +01:00
parent 9b5c090473
commit 26b92f73b5
3 changed files with 26 additions and 0 deletions

View file

@ -4,6 +4,7 @@
call ale#Set('go_gopls_executable', 'gopls') call ale#Set('go_gopls_executable', 'gopls')
call ale#Set('go_gopls_options', '--mode stdio') call ale#Set('go_gopls_options', '--mode stdio')
call ale#Set('go_gopls_init_options', {})
function! ale_linters#go#gopls#GetCommand(buffer) abort function! ale_linters#go#gopls#GetCommand(buffer) abort
return ale#go#EnvString(a:buffer) return ale#go#EnvString(a:buffer)
@ -31,4 +32,5 @@ call ale#linter#Define('go', {
\ 'executable': {b -> ale#Var(b, 'go_gopls_executable')}, \ 'executable': {b -> ale#Var(b, 'go_gopls_executable')},
\ 'command': function('ale_linters#go#gopls#GetCommand'), \ 'command': function('ale_linters#go#gopls#GetCommand'),
\ 'project_root': function('ale_linters#go#gopls#FindProjectRoot'), \ 'project_root': function('ale_linters#go#gopls#FindProjectRoot'),
\ 'initialization_options': {b -> ale#Var(b, 'go_gopls_init_options')},
\}) \})

View file

@ -207,6 +207,27 @@ g:ale_go_gopls_options *g:ale_go_gopls_options*
Type: |String| Type: |String|
Default: `''` 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
=============================================================================== ===============================================================================
govet *ale-go-govet* govet *ale-go-govet*

View file

@ -36,6 +36,9 @@ Execute(should set gopls options):
AssertLinter 'gopls', AssertLinter 'gopls',
\ ale#Escape('gopls') . ' --mode stdio --trace' \ ale#Escape('gopls') . ' --mode stdio --trace'
let b:ale_go_gopls_init_options = {'ui.diagnostic.analyses': {'composites': v:false}}
AssertLSPOptions {'ui.diagnostic.analyses': {'composites': v:false}}
Execute(should support go environment variables): Execute(should support go environment variables):
let b:ale_go_go111module = 'off' let b:ale_go_go111module = 'off'