Add lsp_config support for rls (#2332)
* Add lsp_config for rls * Add working config example and test
This commit is contained in:
parent
c4328f2a31
commit
e5746d9a83
3 changed files with 21 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
|||
|
||||
call ale#Set('rust_rls_executable', 'rls')
|
||||
call ale#Set('rust_rls_toolchain', 'nightly')
|
||||
call ale#Set('rust_rls_config', {})
|
||||
|
||||
function! ale_linters#rust#rls#GetCommand(buffer) abort
|
||||
let l:toolchain = ale#Var(a:buffer, 'rust_rls_toolchain')
|
||||
|
@ -19,6 +20,7 @@ endfunction
|
|||
call ale#linter#Define('rust', {
|
||||
\ 'name': 'rls',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'lsp_config': {b -> ale#Var(b, 'rust_rls_config')},
|
||||
\ 'executable': {b -> ale#Var(b, 'rust_rls_executable')},
|
||||
\ 'command': function('ale_linters#rust#rls#GetCommand'),
|
||||
\ 'project_root': function('ale_linters#rust#rls#GetProjectRoot'),
|
||||
|
|
|
@ -172,6 +172,20 @@ g:ale_rust_rls_toolchain *g:ale_rust_rls_toolchain*
|
|||
The `rls` server will only be started once per executable.
|
||||
|
||||
|
||||
g:ale_rust_rls_config *g:ale_rust_rls_config*
|
||||
*b:ale_rust_rls_config*
|
||||
Type: |Dictionary|
|
||||
Default: `{}`
|
||||
|
||||
Dictionary with configuration settings for rls. For example, to force
|
||||
using clippy as linter: >
|
||||
{
|
||||
\ 'rust': {
|
||||
\ 'clippy_preference': 'on'
|
||||
\ }
|
||||
\ }
|
||||
|
||||
|
||||
===============================================================================
|
||||
rustc *ale-rust-rustc*
|
||||
|
||||
|
|
|
@ -23,3 +23,8 @@ Execute(The project root should be detected correctly):
|
|||
call ale#test#SetFilename('rust-rls-project/test.rs')
|
||||
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/rust-rls-project')
|
||||
|
||||
Execute(Should accept configuration settings):
|
||||
AssertLSPConfig {}
|
||||
let b:ale_rust_rls_config = {'rust': {'clippy_preference': 'on'}}
|
||||
AssertLSPConfig {'rust': {'clippy_preference': 'on'}}
|
||||
|
|
Reference in a new issue