summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorIan2020 <Ian2020@users.noreply.github.com>2020-05-08 12:55:54 +0100
committerIan2020 <Ian2020@users.noreply.github.com>2020-05-08 12:55:54 +0100
commitca97f32258cc6e3f32b5f7605801f053e7dbe320 (patch)
treef593cbc9af75248f995f5eee23c3b46ad477829d /autoload
parent65bea1a5cbbc8ff2557410263c87c2e02cb4a42c (diff)
downloadale-ca97f32258cc6e3f32b5f7605801f053e7dbe320.zip
Use a function to define shellcheck linters and vars needed, fixes tests
Diffstat (limited to 'autoload')
-rw-r--r--autoload/ale/handlers/shellcheck.vim46
1 files changed, 23 insertions, 23 deletions
diff --git a/autoload/ale/handlers/shellcheck.vim b/autoload/ale/handlers/shellcheck.vim
index 2a5eadc3..b16280f0 100644
--- a/autoload/ale/handlers/shellcheck.vim
+++ b/autoload/ale/handlers/shellcheck.vim
@@ -1,16 +1,5 @@
" Author: w0rp <devw0rp@gmail.com>
-" Description: This file adds support for using the shellcheck linter with
-" shell scripts.
-
-" This global variable can be set with a string of comma-separated error
-" codes to exclude from shellcheck. For example:
-"
-" let g:ale_sh_shellcheck_exclusions = 'SC2002,SC2004'
-call ale#Set('sh_shellcheck_exclusions', get(g:, 'ale_linters_sh_shellcheck_exclusions', ''))
-call ale#Set('sh_shellcheck_executable', 'shellcheck')
-call ale#Set('sh_shellcheck_dialect', 'auto')
-call ale#Set('sh_shellcheck_options', '')
-call ale#Set('sh_shellcheck_change_directory', 1)
+" Description: This file adds support for using the shellcheck linter
function! ale#handlers#shellcheck#GetDialectArgument(buffer) abort
let l:shell_type = ale#handlers#sh#GetShellType(a:buffer)
@@ -36,7 +25,7 @@ function! ale#handlers#shellcheck#GetDialectArgument(buffer) abort
return ''
endfunction
-function! ale#handlers#shellcheck#GetCommandWithVersion(buffer, version) abort
+function! ale#handlers#shellcheck#GetCommand(buffer, version) abort
let l:options = ale#Var(a:buffer, 'sh_shellcheck_options')
let l:exclude_option = ale#Var(a:buffer, 'sh_shellcheck_exclusions')
let l:dialect = ale#Var(a:buffer, 'sh_shellcheck_dialect')
@@ -94,14 +83,25 @@ function! ale#handlers#shellcheck#Handle(buffer, lines) abort
return l:output
endfunction
-function! ale#handlers#shellcheck#GetExecutable(buffer) abort
- return ale#Var(a:buffer, 'sh_shellcheck_executable')
-endfunction
-
-function! ale#handlers#shellcheck#GetCommand(buffer) abort
- return ale#semver#RunWithVersionCheck(a:buffer,
- \ ale#Var(a:buffer, 'sh_shellcheck_executable'),
- \ '%e --version',
- \ function('ale#handlers#shellcheck#GetCommandWithVersion'),
- \)
+function! ale#handlers#shellcheck#DefineLinter(filetype) abort
+ " This global variable can be set with a string of comma-separated error
+ " codes to exclude from shellcheck. For example:
+ " let g:ale_sh_shellcheck_exclusions = 'SC2002,SC2004'
+ call ale#Set('sh_shellcheck_exclusions', get(g:, 'ale_linters_sh_shellcheck_exclusions', ''))
+ call ale#Set('sh_shellcheck_executable', 'shellcheck')
+ call ale#Set('sh_shellcheck_dialect', 'auto')
+ call ale#Set('sh_shellcheck_options', '')
+ call ale#Set('sh_shellcheck_change_directory', 1)
+
+ call ale#linter#Define(a:filetype, {
+ \ 'name': 'shellcheck',
+ \ 'executable': {buffer -> ale#Var(buffer, 'sh_shellcheck_executable')},
+ \ 'command': {buffer -> ale#semver#RunWithVersionCheck(
+ \ buffer,
+ \ ale#Var(buffer, 'sh_shellcheck_executable'),
+ \ '%e --version',
+ \ function('ale#handlers#shellcheck#GetCommand'),
+ \ )},
+ \ 'callback': 'ale#handlers#shellcheck#Handle',
+ \})
endfunction