2017-07-10 20:35:35 +00:00
|
|
|
Before:
|
|
|
|
Save &shell
|
|
|
|
Save &shellcmdflag
|
2019-01-03 21:23:09 +00:00
|
|
|
Save g:ale_shell
|
|
|
|
Save g:ale_shell_arguments
|
|
|
|
|
2022-04-06 05:32:11 +00:00
|
|
|
Save b:ale_shell
|
|
|
|
Save b:ale_shell_arguments
|
|
|
|
|
|
|
|
unlet! b:ale_shell
|
|
|
|
unlet! b:ale_shell_arguments
|
|
|
|
|
2019-01-03 21:23:09 +00:00
|
|
|
unlet! g:ale_shell
|
|
|
|
unlet! g:ale_shell_arguments
|
2017-07-10 20:35:35 +00:00
|
|
|
|
|
|
|
After:
|
|
|
|
Restore
|
|
|
|
|
|
|
|
Execute(sh should be used when the shell is fish):
|
2017-12-20 12:20:38 +00:00
|
|
|
if !has('win32')
|
|
|
|
" Set something else, so we will replace that too.
|
|
|
|
let &shellcmdflag = '-f'
|
|
|
|
let &shell = 'fish'
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
let &shell = '/usr/bin/fish'
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
let &shell = '/usr/local/bin/fish'
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
|
|
|
endif
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2018-04-12 20:01:35 +00:00
|
|
|
Execute(sh should be used when the shell is powershell):
|
|
|
|
if !has('win32')
|
|
|
|
" Set something else, so we will replace that too.
|
|
|
|
let &shellcmdflag = '-f'
|
|
|
|
let &shell = 'pwsh'
|
|
|
|
|
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
|
|
|
|
|
|
|
let &shell = '/usr/bin/pwsh'
|
|
|
|
|
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
|
|
|
|
|
|
|
let &shell = '/usr/local/bin/pwsh'
|
|
|
|
|
|
|
|
AssertEqual ['/bin/sh', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
|
|
|
endif
|
|
|
|
|
2017-07-10 20:35:35 +00:00
|
|
|
Execute(Other shells should be used when set):
|
2017-12-20 12:20:38 +00:00
|
|
|
if !has('win32')
|
|
|
|
let &shell = '/bin/bash'
|
|
|
|
let &shellcmdflag = '-c'
|
2018-12-28 16:58:55 +00:00
|
|
|
let g:ale_shell = &shell
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2017-12-20 12:20:38 +00:00
|
|
|
AssertEqual ['/bin/bash', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), 'foobar')
|
|
|
|
endif
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2018-01-17 18:08:17 +00:00
|
|
|
Execute(cmd /s/c as a string should be used on Windows):
|
2017-12-20 12:20:38 +00:00
|
|
|
if has('win32')
|
|
|
|
let &shell = 'who cares'
|
|
|
|
let &shellcmdflag = 'whatever'
|
2017-07-10 20:35:35 +00:00
|
|
|
|
2018-01-17 18:08:17 +00:00
|
|
|
AssertEqual 'cmd /s/c "foobar"', ale#job#PrepareCommand(bufnr(''), 'foobar')
|
2017-12-20 12:20:38 +00:00
|
|
|
endif
|
2018-12-28 16:58:55 +00:00
|
|
|
|
2022-04-06 05:32:11 +00:00
|
|
|
Execute(Setting g:ale_shell should cause ale#job#PrepareCommand to use set shell):
|
2019-01-03 21:23:09 +00:00
|
|
|
let g:ale_shell = '/foo/bar'
|
2018-12-28 16:58:55 +00:00
|
|
|
|
2019-01-04 14:51:55 +00:00
|
|
|
if has('win32')
|
|
|
|
AssertEqual ['/foo/bar', '/c', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
|
|
|
else
|
|
|
|
AssertEqual ['/foo/bar', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
|
|
|
endif
|
2019-01-03 21:23:09 +00:00
|
|
|
|
|
|
|
let g:ale_shell_arguments = '-x'
|
|
|
|
|
|
|
|
AssertEqual ['/foo/bar', '-x', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
2022-04-06 05:32:11 +00:00
|
|
|
|
|
|
|
Execute(Setting b:ale_shell should cause ale#job#PrepareCommand to use set shell):
|
|
|
|
let g:ale_shell = '/wrong/foo/bar'
|
|
|
|
let b:ale_shell = '/foo/bar'
|
|
|
|
|
|
|
|
if has('win32')
|
|
|
|
AssertEqual ['/foo/bar', '/c', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
|
|
|
else
|
|
|
|
AssertEqual ['/foo/bar', '-c', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
|
|
|
endif
|
|
|
|
|
|
|
|
let g:ale_shell_arguments = '--verbose -x'
|
|
|
|
let b:ale_shell_arguments = '-x'
|
|
|
|
|
|
|
|
AssertEqual ['/foo/bar', '-x', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|