Merge pull request #458 from Szero/master

Added shellcheck executable and options variable
This commit is contained in:
w0rp 2017-04-11 09:26:58 +01:00 committed by GitHub
commit 8b890caa31
2 changed files with 37 additions and 2 deletions

View File

@ -10,6 +10,16 @@ if !exists('g:ale_linters_sh_shellcheck_exclusions')
let g:ale_linters_sh_shellcheck_exclusions = '' let g:ale_linters_sh_shellcheck_exclusions = ''
endif endif
let g:ale_sh_shellcheck_executable =
\ get(g:, 'ale_sh_shellcheck_executable', 'shellcheck')
let g:ale_sh_shellcheck_options =
\ get(g:, 'ale_sh_shellcheck_options', '')
function! ale_linters#sh#shellcheck#GetExecutable(buffer) abort
return g:ale_sh_shellcheck_executable
endfunction
if g:ale_linters_sh_shellcheck_exclusions !=# '' if g:ale_linters_sh_shellcheck_exclusions !=# ''
let s:exclude_option = '-e ' . g:ale_linters_sh_shellcheck_exclusions let s:exclude_option = '-e ' . g:ale_linters_sh_shellcheck_exclusions
else else
@ -29,12 +39,14 @@ function! s:GetDialectArgument() abort
endfunction endfunction
function! ale_linters#sh#shellcheck#GetCommand(buffer) abort function! ale_linters#sh#shellcheck#GetCommand(buffer) abort
return 'shellcheck ' . s:exclude_option . ' ' . s:GetDialectArgument() . ' -f gcc -' return ale_linters#sh#shellcheck#GetExecutable(a:buffer)
\ . ' ' . g:ale_sh_shellcheck_options
\ . ' ' . s:exclude_option . ' ' . s:GetDialectArgument() . ' -f gcc -'
endfunction endfunction
call ale#linter#Define('sh', { call ale#linter#Define('sh', {
\ 'name': 'shellcheck', \ 'name': 'shellcheck',
\ 'executable': 'shellcheck', \ 'executable_callback': 'ale_linters#sh#shellcheck#GetExecutable',
\ 'command_callback': 'ale_linters#sh#shellcheck#GetCommand', \ 'command_callback': 'ale_linters#sh#shellcheck#GetCommand',
\ 'callback': 'ale#handlers#HandleGCCFormat', \ 'callback': 'ale#handlers#HandleGCCFormat',
\}) \})

View File

@ -19,12 +19,35 @@ g:ale_linters_sh_shell_default_shell *g:ale_linters_sh_shell_default_shell*
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
shellcheck *ale-sh-shellcheck* shellcheck *ale-sh-shellcheck*
g:ale_sh_shellcheck_executable *g:ale_sh_shellcheck_executable*
Type: |String|
Default: `'shellcheck'`
This variable sets executable used for shellcheck.
g:ale_sh_shellcheck_options *g:ale_sh_shellcheck_options*
Type: |String|
Default: `''`
With this variable we are able to pass extra arguments for shellcheck
for shellcheck invocation.
For example, if we want shellcheck to follow external sources (`see SC1091`)
we can set the variable as such:
let g:ale_sh_shellcheck_options = '-x'
g:ale_linters_sh_shellcheck_exclusions *g:ale_linters_sh_shellcheck_exclusions* g:ale_linters_sh_shellcheck_exclusions *g:ale_linters_sh_shellcheck_exclusions*
Type: |String| Type: |String|
Default: `''` Default: `''`
Set this variable to exclude test(s) for shellcheck (-e/--exclude option). Set this variable to exclude test(s) for shellcheck (-e/--exclude option).
To exclude more than one option, separate them with commas.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------