diff options
Diffstat (limited to 'ale_linters')
-rw-r--r-- | ale_linters/asciidoc/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/haml/hamllint.vim | 29 | ||||
-rw-r--r-- | ale_linters/help/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/html/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/mail/proselint.vim | 9 | ||||
-rw-r--r-- | ale_linters/mail/vale.vim | 9 | ||||
-rw-r--r-- | ale_linters/make/checkmake.vim | 24 | ||||
-rw-r--r-- | ale_linters/markdown/remark_lint.vim | 28 | ||||
-rw-r--r-- | ale_linters/markdown/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/nroff/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/php/phan.vim | 36 | ||||
-rw-r--r-- | ale_linters/php/phpmd.vim | 2 | ||||
-rw-r--r-- | ale_linters/pod/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/rst/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/rust/cargo.vim | 2 | ||||
-rw-r--r-- | ale_linters/sh/shellcheck.vim | 5 | ||||
-rw-r--r-- | ale_linters/tex/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/texinfo/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/text/write-good.vim | 9 | ||||
-rw-r--r-- | ale_linters/xhtml/write-good.vim | 9 |
20 files changed, 237 insertions, 6 deletions
diff --git a/ale_linters/asciidoc/write-good.vim b/ale_linters/asciidoc/write-good.vim new file mode 100644 index 00000000..c986cc6c --- /dev/null +++ b/ale_linters/asciidoc/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for AsciiDoc files + +call ale#linter#Define('asciidoc', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/haml/hamllint.vim b/ale_linters/haml/hamllint.vim index b1a6aa57..d6633599 100644 --- a/ale_linters/haml/hamllint.vim +++ b/ale_linters/haml/hamllint.vim @@ -1,6 +1,31 @@ -" Author: Patrick Lewis - https://github.com/patricklewis +" Author: Patrick Lewis - https://github.com/patricklewis, thenoseman - https://github.com/thenoseman " Description: haml-lint for Haml files +function! ale_linters#haml#hamllint#GetCommand(buffer) abort + let l:prefix = '' + + let l:rubocop_config_file_path = ale#path#FindNearestFile(a:buffer, '.rubocop.yml') + let l:hamllint_config_file_path = ale#path#FindNearestFile(a:buffer, '.haml-lint.yml') + + " Set HAML_LINT_RUBOCOP_CONF variable as it is needed for haml-lint to + " pick up the rubocop config. + " + " See https://github.com/brigade/haml-lint/blob/master/lib/haml_lint/linter/rubocop.rb#L89 + " HamlLint::Linter::RuboCop#rubocop_flags + if !empty(l:rubocop_config_file_path) + if ale#Has('win32') + let l:prefix = 'set HAML_LINT_RUBOCOP_CONF=' . ale#Escape(l:rubocop_config_file_path) . ' &&' + else + let l:prefix = 'HAML_LINT_RUBOCOP_CONF=' . ale#Escape(l:rubocop_config_file_path) + endif + endif + + return (!empty(l:prefix) ? l:prefix . ' ' : '') + \ . 'haml-lint' + \ . (!empty(l:hamllint_config_file_path) ? ' --config ' . ale#Escape(l:hamllint_config_file_path) : '') + \ . ' %t' +endfunction + function! ale_linters#haml#hamllint#Handle(buffer, lines) abort " Matches patterns like the following: " <path>:51 [W] RuboCop: Use the new Ruby 1.9 hash syntax. @@ -21,6 +46,6 @@ endfunction call ale#linter#Define('haml', { \ 'name': 'hamllint', \ 'executable': 'haml-lint', -\ 'command': 'haml-lint %t', +\ 'command_callback': 'ale_linters#haml#hamllint#GetCommand', \ 'callback': 'ale_linters#haml#hamllint#Handle' \}) diff --git a/ale_linters/help/write-good.vim b/ale_linters/help/write-good.vim new file mode 100644 index 00000000..11254cd2 --- /dev/null +++ b/ale_linters/help/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for vim Help files + +call ale#linter#Define('help', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/html/write-good.vim b/ale_linters/html/write-good.vim new file mode 100644 index 00000000..9fae8821 --- /dev/null +++ b/ale_linters/html/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for nroff files + +call ale#linter#Define('html', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/mail/proselint.vim b/ale_linters/mail/proselint.vim new file mode 100644 index 00000000..82c8d1f8 --- /dev/null +++ b/ale_linters/mail/proselint.vim @@ -0,0 +1,9 @@ +" Author: Daniel M. Capella https://github.com/polyzen +" Description: proselint for mail files + +call ale#linter#Define('mail', { +\ 'name': 'proselint', +\ 'executable': 'proselint', +\ 'command': 'proselint %t', +\ 'callback': 'ale#handlers#unix#HandleAsWarning', +\}) diff --git a/ale_linters/mail/vale.vim b/ale_linters/mail/vale.vim new file mode 100644 index 00000000..9b30bf65 --- /dev/null +++ b/ale_linters/mail/vale.vim @@ -0,0 +1,9 @@ +" Author: chew-z https://github.com/chew-z +" Description: vale for Markdown files + +call ale#linter#Define('mail', { +\ 'name': 'vale', +\ 'executable': 'vale', +\ 'command': 'vale --output=line %t', +\ 'callback': 'ale#handlers#unix#HandleAsWarning', +\}) diff --git a/ale_linters/make/checkmake.vim b/ale_linters/make/checkmake.vim new file mode 100644 index 00000000..3dd8cc91 --- /dev/null +++ b/ale_linters/make/checkmake.vim @@ -0,0 +1,24 @@ +" Author: aurieh - https://github.com/aurieh + +function! ale_linters#make#checkmake#Handle(buffer, lines) abort + let l:pattern = '\v^(\d+):(.+):(.+)$' + let l:output = [] + + for l:match in ale#util#GetMatches(a:lines, l:pattern) + let l:text = l:match[2] . ': ' . l:match[3] + call add(l:output, { + \ 'bufnr': a:buffer, + \ 'lnum': l:match[1] + 0, + \ 'type': 'E', + \ 'text': l:text, + \}) + endfor + return l:output +endfunction + +call ale#linter#Define('make', { +\ 'name': 'checkmake', +\ 'executable': 'checkmake', +\ 'command': 'checkmake %s --format="{{.LineNumber}}:{{.Rule}}:{{.Violation}}"', +\ 'callback': 'ale_linters#make#checkmake#Handle', +\}) diff --git a/ale_linters/markdown/remark_lint.vim b/ale_linters/markdown/remark_lint.vim new file mode 100644 index 00000000..5b3b3d47 --- /dev/null +++ b/ale_linters/markdown/remark_lint.vim @@ -0,0 +1,28 @@ +" Author rhysd https://rhysd.github.io/ +" Description: remark-lint for Markdown files + +function! ale_linters#markdown#remark_lint#Handle(buffer, lines) abort + " matches: ' 1:4 warning Incorrect list-item indent: add 1 space list-item-indent remark-lint' + let l:pattern = '^ \+\(\d\+\):\(\d\+\) \(warning\|error\) \(.\+\)$' + let l:output = [] + + for l:match in ale#util#GetMatches(a:lines, l:pattern) + call add(l:output, { + \ 'lnum': l:match[1] + 0, + \ 'col': l:match[2] + 0, + \ 'type': l:match[3] is# 'error' ? 'E' : 'W', + \ 'text': l:match[4], + \}) + endfor + + return l:output +endfunction + +call ale#linter#Define('markdown', { +\ 'name': 'remark-lint', +\ 'executable': 'remark', +\ 'command': 'remark --no-stdout --no-color %s', +\ 'callback': 'ale_linters#markdown#remark_lint#Handle', +\ 'lint_file': 1, +\ 'output_stream': 'stderr', +\}) diff --git a/ale_linters/markdown/write-good.vim b/ale_linters/markdown/write-good.vim new file mode 100644 index 00000000..21dbff1a --- /dev/null +++ b/ale_linters/markdown/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for Markdown files + +call ale#linter#Define('markdown', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/nroff/write-good.vim b/ale_linters/nroff/write-good.vim new file mode 100644 index 00000000..d318fb28 --- /dev/null +++ b/ale_linters/nroff/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for nroff files + +call ale#linter#Define('nroff', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/php/phan.vim b/ale_linters/php/phan.vim new file mode 100644 index 00000000..f3b3d48f --- /dev/null +++ b/ale_linters/php/phan.vim @@ -0,0 +1,36 @@ +" Author: diegoholiveira <https://github.com/diegoholiveira> +" Description: static analyzer for PHP + +" Define the minimum severity +let g:ale_php_phan_minimum_severity = get(g:, 'ale_php_phan_minimum_severity', 0) + +function! ale_linters#php#phan#GetCommand(buffer) abort + return 'phan -y ' + \ . ale#Var(a:buffer, 'php_phan_minimum_severity') + \ . ' %s' +endfunction + +function! ale_linters#php#phan#Handle(buffer, lines) abort + " Matches against lines like the following: + " + " /path/to/some-filename.php:18 ERRORTYPE message + let l:pattern = '^.*:\(\d\+\)\s\(\w\+\)\s\(.\+\)$' + let l:output = [] + + for l:match in ale#util#GetMatches(a:lines, l:pattern) + call add(l:output, { + \ 'lnum': l:match[1] + 0, + \ 'text': l:match[3], + \ 'type': 'W', + \}) + endfor + + return l:output +endfunction + +call ale#linter#Define('php', { +\ 'name': 'phan', +\ 'executable': 'phan', +\ 'command_callback': 'ale_linters#php#phan#GetCommand', +\ 'callback': 'ale_linters#php#phan#Handle', +\}) diff --git a/ale_linters/php/phpmd.vim b/ale_linters/php/phpmd.vim index 29d8103a..e4192c70 100644 --- a/ale_linters/php/phpmd.vim +++ b/ale_linters/php/phpmd.vim @@ -14,7 +14,7 @@ function! ale_linters#php#phpmd#Handle(buffer, lines) abort " Matches against lines like the following: " " /path/to/some-filename.php:18 message - let l:pattern = '^.*:\(\d\+\)\t\(.\+\)$' + let l:pattern = '^.*:\(\d\+\)\s\+\(.\+\)$' let l:output = [] for l:match in ale#util#GetMatches(a:lines, l:pattern) diff --git a/ale_linters/pod/write-good.vim b/ale_linters/pod/write-good.vim new file mode 100644 index 00000000..14ed5c0c --- /dev/null +++ b/ale_linters/pod/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for Pod files + +call ale#linter#Define('pod', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/rst/write-good.vim b/ale_linters/rst/write-good.vim new file mode 100644 index 00000000..12137dbf --- /dev/null +++ b/ale_linters/rst/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for reStructuredText files + +call ale#linter#Define('rst', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/rust/cargo.vim b/ale_linters/rust/cargo.vim index f19061ad..c887ea79 100644 --- a/ale_linters/rust/cargo.vim +++ b/ale_linters/rust/cargo.vim @@ -26,6 +26,6 @@ call ale#linter#Define('rust', { \ 'executable_callback': 'ale_linters#rust#cargo#GetCargoExecutable', \ 'command_callback': 'ale_linters#rust#cargo#GetCommand', \ 'callback': 'ale#handlers#rust#HandleRustErrors', -\ 'output_stream': 'stdout', +\ 'output_stream': 'both', \ 'lint_file': 1, \}) diff --git a/ale_linters/sh/shellcheck.vim b/ale_linters/sh/shellcheck.vim index b47ba19f..68844a05 100644 --- a/ale_linters/sh/shellcheck.vim +++ b/ale_linters/sh/shellcheck.vim @@ -43,11 +43,12 @@ function! ale_linters#sh#shellcheck#GetCommand(buffer) abort let l:exclude_option = ale#Var(a:buffer, 'sh_shellcheck_exclusions') let l:dialect = ale_linters#sh#shellcheck#GetDialectArgument(a:buffer) - return ale_linters#sh#shellcheck#GetExecutable(a:buffer) + return ale#path#BufferCdString(a:buffer) + \ . ale#Escape(ale_linters#sh#shellcheck#GetExecutable(a:buffer)) \ . (!empty(l:dialect) ? ' -s ' . l:dialect : '') \ . (!empty(l:options) ? ' ' . l:options : '') \ . (!empty(l:exclude_option) ? ' -e ' . l:exclude_option : '') - \ . ' -f gcc -' + \ . ' -x -f gcc -' endfunction call ale#linter#Define('sh', { diff --git a/ale_linters/tex/write-good.vim b/ale_linters/tex/write-good.vim new file mode 100644 index 00000000..dc59de2e --- /dev/null +++ b/ale_linters/tex/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for TeX files + +call ale#linter#Define('tex', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/texinfo/write-good.vim b/ale_linters/texinfo/write-good.vim new file mode 100644 index 00000000..8104c634 --- /dev/null +++ b/ale_linters/texinfo/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for Texinfo files + +call ale#linter#Define('texinfo', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/text/write-good.vim b/ale_linters/text/write-good.vim new file mode 100644 index 00000000..ff76ce42 --- /dev/null +++ b/ale_linters/text/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for text files + +call ale#linter#Define('text', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) diff --git a/ale_linters/xhtml/write-good.vim b/ale_linters/xhtml/write-good.vim new file mode 100644 index 00000000..83d1863b --- /dev/null +++ b/ale_linters/xhtml/write-good.vim @@ -0,0 +1,9 @@ +" Author: Sumner Evans <sumner.evans98@gmail.com> +" Description: write-good for XHTML files + +call ale#linter#Define('xhtml', { +\ 'name': 'write-good', +\ 'executable_callback': 'ale#handlers#writegood#GetExecutable', +\ 'command_callback': 'ale#handlers#writegood#GetCommand', +\ 'callback': 'ale#handlers#writegood#Handle', +\}) |