mirror of https://github.com/dense-analysis/ale
Add the buffer-local options 'b:ale_shell' and 'b:ale_shell_arguments'. (#4146)
This commit is contained in:
parent
c984daa0ec
commit
6c1f616c59
|
@ -187,10 +187,16 @@ function! ale#job#PrepareCommand(buffer, command) abort
|
||||||
\ : a:command
|
\ : a:command
|
||||||
|
|
||||||
" If a custom shell is specified, use that.
|
" If a custom shell is specified, use that.
|
||||||
if exists('g:ale_shell')
|
if exists('b:ale_shell')
|
||||||
let l:shell_arguments = get(g:, 'ale_shell_arguments', &shellcmdflag)
|
let l:ale_shell = b:ale_shell
|
||||||
|
elseif exists('g:ale_shell')
|
||||||
|
let l:ale_shell = g:ale_shell
|
||||||
|
endif
|
||||||
|
|
||||||
return split(g:ale_shell) + split(l:shell_arguments) + [l:command]
|
if exists('l:ale_shell')
|
||||||
|
let l:shell_arguments = get(b:, 'ale_shell_arguments', get(g:, 'ale_shell_arguments', &shellcmdflag))
|
||||||
|
|
||||||
|
return split(l:ale_shell) + split(l:shell_arguments) + [l:command]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if has('win32')
|
if has('win32')
|
||||||
|
|
|
@ -2093,6 +2093,7 @@ g:ale_sign_priority *g:ale_sign_priority*
|
||||||
|
|
||||||
|
|
||||||
g:ale_shell *g:ale_shell*
|
g:ale_shell *g:ale_shell*
|
||||||
|
*b:ale_shell*
|
||||||
|
|
||||||
Type: |String|
|
Type: |String|
|
||||||
Default: not set
|
Default: not set
|
||||||
|
@ -2110,6 +2111,7 @@ g:ale_shell *g:ale_shell*
|
||||||
|
|
||||||
|
|
||||||
g:ale_shell_arguments *g:ale_shell_arguments*
|
g:ale_shell_arguments *g:ale_shell_arguments*
|
||||||
|
*b:ale_shell_arguments*
|
||||||
|
|
||||||
Type: |String|
|
Type: |String|
|
||||||
Default: not set
|
Default: not set
|
||||||
|
|
|
@ -4,6 +4,12 @@ Before:
|
||||||
Save g:ale_shell
|
Save g:ale_shell
|
||||||
Save g:ale_shell_arguments
|
Save g:ale_shell_arguments
|
||||||
|
|
||||||
|
Save b:ale_shell
|
||||||
|
Save b:ale_shell_arguments
|
||||||
|
|
||||||
|
unlet! b:ale_shell
|
||||||
|
unlet! b:ale_shell_arguments
|
||||||
|
|
||||||
unlet! g:ale_shell
|
unlet! g:ale_shell
|
||||||
unlet! g:ale_shell_arguments
|
unlet! g:ale_shell_arguments
|
||||||
|
|
||||||
|
@ -61,7 +67,7 @@ Execute(cmd /s/c as a string should be used on Windows):
|
||||||
AssertEqual 'cmd /s/c "foobar"', ale#job#PrepareCommand(bufnr(''), 'foobar')
|
AssertEqual 'cmd /s/c "foobar"', ale#job#PrepareCommand(bufnr(''), 'foobar')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
Execute(Setting ale_shell should cause ale#job#PrepareCommand to use set shell):
|
Execute(Setting g:ale_shell should cause ale#job#PrepareCommand to use set shell):
|
||||||
let g:ale_shell = '/foo/bar'
|
let g:ale_shell = '/foo/bar'
|
||||||
|
|
||||||
if has('win32')
|
if has('win32')
|
||||||
|
@ -73,3 +79,18 @@ Execute(Setting ale_shell should cause ale#job#PrepareCommand to use set shell):
|
||||||
let g:ale_shell_arguments = '-x'
|
let g:ale_shell_arguments = '-x'
|
||||||
|
|
||||||
AssertEqual ['/foo/bar', '-x', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
AssertEqual ['/foo/bar', '-x', 'foobar'], ale#job#PrepareCommand(bufnr(''), "foobar")
|
||||||
|
|
||||||
|
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")
|
||||||
|
|
Loading…
Reference in New Issue