summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/rust/rls.vim7
-rw-r--r--test/command_callback/test_rust_rls_callbacks.vader7
2 files changed, 12 insertions, 2 deletions
diff --git a/ale_linters/rust/rls.vim b/ale_linters/rust/rls.vim
index 832fe3e2..24316b04 100644
--- a/ale_linters/rust/rls.vim
+++ b/ale_linters/rust/rls.vim
@@ -12,8 +12,11 @@ function! ale_linters#rust#rls#GetCommand(buffer) abort
let l:executable = ale_linters#rust#rls#GetExecutable(a:buffer)
let l:toolchain = ale#Var(a:buffer, 'rust_rls_toolchain')
- return ale#Escape(l:executable)
- \ . ' +' . ale#Escape(l:toolchain)
+ if empty(l:toolchain)
+ return ale#Escape(l:executable)
+ else
+ return ale#Escape(l:executable) . ' +' . ale#Escape(l:toolchain)
+ endif
endfunction
function! ale_linters#rust#rls#GetLanguage(buffer) abort
diff --git a/test/command_callback/test_rust_rls_callbacks.vader b/test/command_callback/test_rust_rls_callbacks.vader
index 693d6e9f..d537bccb 100644
--- a/test/command_callback/test_rust_rls_callbacks.vader
+++ b/test/command_callback/test_rust_rls_callbacks.vader
@@ -28,6 +28,13 @@ Execute(The toolchain should be configurable):
\ ale#Escape('rls') . ' +' . ale#Escape('stable'),
\ ale_linters#rust#rls#GetCommand(bufnr(''))
+Execute(The toolchain should be ommitted if not given):
+ let g:ale_rust_rls_toolchain = ''
+
+ AssertEqual
+ \ ale#Escape('rls'),
+ \ ale_linters#rust#rls#GetCommand(bufnr(''))
+
Execute(The language string should be correct):
AssertEqual 'rust', ale_linters#rust#rls#GetLanguage(bufnr(''))