change ale to use value of g:ale_shell regardless of what it is

This commit is contained in:
Holden
2019-01-02 19:05:51 -05:00
parent 8550fa6059
commit 5f613a5fd6
5 changed files with 36 additions and 22 deletions

View File

@@ -12,10 +12,10 @@
let g:ale_command_wrapper = get(g:, 'ale_command_wrapper', '')
" A setting for the shell used to execute commands
let g:ale_shell = get(g:, 'ale_shell', &shell)
let g:ale_shell = get(g:, 'ale_shell', v:null)
" A setting for the arguments we pass to the shell when executing commands
let g:ale_shell_arguments = get(g:, 'ale_shell_arguments', &shellcmdflag)
let g:ale_shell_arguments = get(g:, 'ale_shell_arguments', v:null)
if !has_key(s:, 'job_map')
let s:job_map = {}
@@ -190,15 +190,27 @@ function! ale#job#PrepareCommand(buffer, command) abort
" NeoVim handles this issue automatically if the command is a String,
" but we'll do this explicitly, so we use the same exact command for both
" versions.
if has('win32')
return 'cmd /s/c "' . l:command . '"'
endif
if g:ale_shell is v:null
if has('win32')
return 'cmd /s/c "' . l:command . '"'
endif
if g:ale_shell =~? 'fish$\|pwsh$'
return ['/bin/sh', '-c', l:command]
endif
if &shell =~? 'fish$\|pwsh$'
return ['/bin/sh', '-c', l:command]
endif
return [g:ale_shell] + split(g:ale_shell_arguments) + [l:command]
return split(&shell) + split(&shellcmdflag) + [l:command]
else
if has('win32')
return g:ale_shell . l:command . '"'
endif
let l:shell_arguments = g:ale_shell_arguments is v:null
\ ? &shellcmdflag
\ : g:ale_shell_arguments
return split(g:ale_shell) + split(l:shell_arguments) + [l:command]
endif
endfunction
" Start a job with options which are agnostic to Vim and NeoVim.