summaryrefslogtreecommitdiff
path: root/ale_linters/sh
diff options
context:
space:
mode:
Diffstat (limited to 'ale_linters/sh')
-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 -'