syntastic/syntax_checkers/xhtml.vim
Martin Grenfell da78242123 add an option to SyntasticMake to specify defaults
Many of the syntax checkers were setting the 'bufnr' key for each
error manually and one was setting 'text' if it didnt exist too.

Add the 'defaults' option to SyntasticMake to set default values in the
returned error list - it only sets values if they are empty.
2011-12-09 13:47:42 +00:00

47 lines
1.9 KiB
VimL

"============================================================================
"File: xhtml.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
"License: This program is free software. It comes without any warranty,
" to the extent permitted by applicable law. You can redistribute
" it and/or modify it under the terms of the Do What The Fuck You
" Want To Public License, Version 2, as published by Sam Hocevar.
" See http://sam.zoy.org/wtfpl/COPYING for more details.
"
"============================================================================
if exists("loaded_xhtml_syntax_checker")
finish
endif
let loaded_xhtml_syntax_checker = 1
"bail if the user doesnt have tidy or grep installed
if !executable("tidy")
finish
endif
" TODO: join this with html.vim DRY's sake?
function! s:TidyEncOptByFenc()
let tidy_opts = {
\'utf-8' : '-utf8',
\'ascii' : '-ascii',
\'latin1' : '-latin1',
\'iso-2022-jp' : '-iso-2022',
\'cp1252' : '-win1252',
\'macroman' : '-mac',
\'utf-16le' : '-utf16le',
\'utf-16' : '-utf16',
\'big5' : '-big5',
\'sjis' : '-shiftjis',
\'cp850' : '-ibm858',
\}
return get(tidy_opts, &fileencoding, '-utf8')
endfunction
function! SyntaxCheckers_xhtml_GetLocList()
let encopt = s:TidyEncOptByFenc()
let makeprg="tidy ".encopt." -xml -e ".shellescape(expand('%'))
let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#'
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'defaults': {'bufnr': bufnr("")} })
endfunction