"============================================================================ "File: php.vim "Description: Syntax checking plugin for syntastic.vim "Maintainer: Martin Grenfell "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_php_syntax_checker") finish endif let loaded_php_syntax_checker = 1 "bail if the user doesnt have php installed if !executable("php") || !executable("tidy") finish endif function! SyntaxCheckers_php_GetLocList() return extend(s:PhpErrors(), s:HtmlErrors()) endfunction function! s:PhpErrors() let makeprg = "php -l %" let errorformat='%-GNo syntax errors detected in%.%#,%-GErrors parsing %.%#,%-G\s%#,%EParse error: syntax error\, %m in %f on line %l' return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) endfunction function! s:HtmlErrors() let makeprg="tidy -e % 2>&1" let errorformat='%Wline %l column %c - Warning: %m,%Eline %l column %c - Error: %m,%-G%.%#,%-G%.%#' let loclist = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat }) call filter(loclist, 'index(s:html_ignored_errors, v:val["text"]) == -1') "the file name isnt in the output so stick in the buf num manually for i in loclist let i['bufnr'] = bufnr("") endfor return loclist endfunction let s:html_ignored_errors = ["inserting missing 'title' element", \ 'missing declaration', \ 'inserting implicit ', \ ' lacks "summary" attribute']