Escape executable
This commit is contained in:
		
							parent
							
								
									9ca51ed035
								
							
						
					
					
						commit
						3f926de76b
					
				@ -25,14 +25,19 @@ function! ale_linters#ruby#rubocop#Handle(buffer, lines) abort
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
function! ale_linters#ruby#rubocop#GetCommand(buffer) abort
 | 
			
		||||
    return ale#Var(a:buffer, 'ruby_rubocop_executable')
 | 
			
		||||
    let l:unescaped = ale#Var(a:buffer, 'ruby_rubocop_executable')
 | 
			
		||||
    let l:executable = ale#Escape(l:unescaped)
 | 
			
		||||
    if l:unescaped =~? 'bundle$'
 | 
			
		||||
        let l:executable = l:executable . ' exec rubocop'
 | 
			
		||||
    endif
 | 
			
		||||
    return l:executable
 | 
			
		||||
    \   . ' --format emacs --force-exclusion '
 | 
			
		||||
    \   . ale#Var(a:buffer, 'ruby_rubocop_options')
 | 
			
		||||
    \   . ' --stdin ' . bufname(a:buffer)
 | 
			
		||||
endfunction
 | 
			
		||||
 | 
			
		||||
function! ale_linters#ruby#rubocop#GetExecutable(buffer) abort
 | 
			
		||||
    let l:executable = split(ale#Var(a:buffer, 'ruby_rubocop_executable'))[0]
 | 
			
		||||
    let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable')
 | 
			
		||||
    if executable(l:executable)
 | 
			
		||||
        return l:executable
 | 
			
		||||
    endif
 | 
			
		||||
 | 
			
		||||
@ -3,27 +3,17 @@ Before:
 | 
			
		||||
 | 
			
		||||
Execute(Executable should default to rubocop):
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ 'rubocop --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ '''rubocop'' --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
 | 
			
		||||
 | 
			
		||||
Execute(Should be able to set a custom executable):
 | 
			
		||||
  let g:ale_ruby_rubocop_executable = 'bin/rubocop'
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ 'bin/rubocop --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ '''bin/rubocop'' --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
 | 
			
		||||
 | 
			
		||||
Execute(Custom executables should not be escaped):
 | 
			
		||||
  let g:ale_ruby_rubocop_executable = 'bundle exec rubocop'
 | 
			
		||||
Execute(Setting bundle appends 'exec rubocop'):
 | 
			
		||||
  let g:ale_ruby_rubocop_executable = 'path to/bundle'
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ 'bundle exec rubocop --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ '''path to/bundle'' exec rubocop --format emacs --force-exclusion  --stdin ''dummy.py''',
 | 
			
		||||
  \ ale_linters#ruby#rubocop#GetCommand(bufnr(''))
 | 
			
		||||
 | 
			
		||||
Execute(Executable callback should return the first token of the executable):
 | 
			
		||||
  let g:ale_ruby_rubocop_executable = 'bundle exec rubocop'
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ 'bundle',
 | 
			
		||||
  \ ale_linters#ruby#rubocop#GetExecutable(bufnr(''))
 | 
			
		||||
  let g:ale_ruby_rubocop_executable = 'bin/rubocop'
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ 'bin/rubocop',
 | 
			
		||||
  \ ale_linters#ruby#rubocop#GetExecutable(bufnr(''))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user