summaryrefslogtreecommitdiff
path: root/ale_linters/sh/shellcheck.vim
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2016-10-03 13:18:27 +0100
committerw0rp <devw0rp@gmail.com>2016-10-03 13:18:27 +0100
commitc89c4fcef9379ec44ed5e0ec74c9f384ad4f001d (patch)
treed18fa8274f4303622254a7b90f158bb3046a0e1a /ale_linters/sh/shellcheck.vim
parent23383ce547c34482cec1860279f5f4af3c0f8217 (diff)
downloadale-c89c4fcef9379ec44ed5e0ec74c9f384ad4f001d.zip
Add support for shellcheck linting.
Diffstat (limited to 'ale_linters/sh/shellcheck.vim')
-rw-r--r--ale_linters/sh/shellcheck.vim32
1 files changed, 32 insertions, 0 deletions
diff --git a/ale_linters/sh/shellcheck.vim b/ale_linters/sh/shellcheck.vim
new file mode 100644
index 00000000..6a96d12c
--- /dev/null
+++ b/ale_linters/sh/shellcheck.vim
@@ -0,0 +1,32 @@
+" Author: w0rp <devw0rp@gmail.com>
+" Description: This file adds support for using the shellcheck linter with
+" shell scripts.
+
+if exists('g:loaded_ale_linters_sh_shellcheck')
+ finish
+endif
+
+let g:loaded_ale_linters_sh_shellcheck = 1
+
+" This global variable can be set with a string of comma-seperated error
+" codes to exclude from shellcheck. For example:
+"
+" let g:ale_linters_sh_shellcheck_exclusions = 'SC2002,SC2004'
+if !exists('g:ale_linters_sh_shellcheck_exclusions')
+ let g:ale_linters_sh_shellcheck_exclusions = ''
+endif
+
+if g:ale_linters_sh_shellcheck_exclusions != ''
+ let s:exclude_option = '-e ' . g:ale_linters_sh_shellcheck_exclusions
+else
+ let s:exclude_option = ''
+endif
+
+call ALEAddLinter('sh', {
+\ 'name': 'shellcheck',
+\ 'executable': 'shellcheck',
+\ 'command': 'shellcheck ' . s:exclude_option . ' -f gcc -',
+\ 'callback': 'ale#handlers#HandleGCCFormat',
+\})
+
+echo 'shellcheck' . s:exclude_option . '-f gcc -'