Fix rust rls linter toolchain argument
This removes the argument if the specified toolchain is empty. As far as I can tell there is no +nighly (or similar) option [1] leading to the termination of the server. But since people needed this option and have yet to complain about it it stays the default for now. [1] https://github.com/rust-lang-nursery/rls/blob/master/src/main.rs#L87
This commit is contained in:
		
							parent
							
								
									f064ba48f5
								
							
						
					
					
						commit
						6c93cded64
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -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(''))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user