diff options
author | Kabbaj Amine <amine.kabb@gmail.com> | 2016-10-04 22:10:12 +0300 |
---|---|---|
committer | Kabbaj Amine <amine.kabb@gmail.com> | 2016-10-04 22:16:28 +0300 |
commit | dd3a34fa279b2289a8e73f27728dbbcca012f850 (patch) | |
tree | b14e7c2d1178230bdd58a4c54f4d9cb2f88e0a0c /ale_linters/html | |
parent | c6dc324add0d03cadd624bcd0f990207bdd4210a (diff) | |
download | ale-dd3a34fa279b2289a8e73f27728dbbcca012f850.zip |
Add tidy support for html
Diffstat (limited to 'ale_linters/html')
-rw-r--r-- | ale_linters/html/tidy.vim | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/ale_linters/html/tidy.vim b/ale_linters/html/tidy.vim new file mode 100644 index 00000000..35834842 --- /dev/null +++ b/ale_linters/html/tidy.vim @@ -0,0 +1,54 @@ +" Author: KabbAmine <amine.kabb@gmail.com> +" Description: This file adds support for checking HTML code with tidy. + +if exists('g:loaded_ale_linters_html_tidy') + finish +endif + +let g:loaded_ale_linters_html_tidy = 1 + +function! ale_linters#html#tidy#Handle(buffer, lines) + " Matches patterns lines like the following: + " line 7 column 5 - Warning: missing </title> before </head> + + let pattern = '^line \(\d\+\) column \(\d\+\) - \(Warning\|Error\): \(.\+\)$' + let output = [] + + for line in a:lines + let match = matchlist(line, pattern) + + if len(match) == 0 + continue + endif + + let line = match[1] + 0 + let col = match[2] + 0 + let type = match[3] ==# 'Error' ? 'E' : 'W' + let text = printf('[%s]%s', match[3], match[4]) + + " vcol is Needed to indicate that the column is a character. + call add(output, { + \ 'bufnr': a:buffer, + \ 'lnum': line, + \ 'vcol': 0, + \ 'col': col, + \ 'text': text, + \ 'type': type, + \ 'nr': -1, + \}) + endfor + + return output +endfunction + +" User options +let g:ale_html_tidy_executable = get(g:, 'ale_html_tidy_executable', 'tidy') +let g:ale_html_tidy_args = get(g:, 'ale_html_tidy_args', '-q -e -language en') + +call ALEAddLinter('html', { +\ 'name': g:ale_html_tidy_executable, +\ 'executable': g:ale_html_tidy_executable, +\ 'command': printf('%s %s -', g:ale_html_tidy_executable, g:ale_html_tidy_args), +\ 'output_stream': 'stderr', +\ 'callback': 'ale_linters#html#tidy#Handle', +\}) |