2009-07-14 21:57:18 -04:00
"============================================================================
"File: php.vim
"Description: Syntax checking plugin for syntastic.vim
2009-12-16 05:02:36 -05:00
"Maintainer: Martin Grenfell <martin.grenfell at gmail dot com>
2009-07-14 21:57:18 -04:00
"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.
"
"============================================================================
2013-02-21 10:50:41 -05:00
if exists ( "g:loaded_syntastic_php_php_checker" )
finish
endif
let g :loaded_syntastic_php_php_checker = 1
2013-01-27 15:08:30 -05:00
function ! SyntaxCheckers_php_php_IsAvailable ( )
return executable ( "php" )
endfunction
2009-07-14 21:57:18 -04:00
2012-03-02 05:05:15 -05:00
function ! SyntaxCheckers_php_GetHighlightRegex ( item )
2011-05-03 08:37:30 -04:00
let unexpected = matchstr ( a :item ['text' ], "unexpected '[^']\\+'" )
2012-03-02 05:05:15 -05:00
if len ( unexpected ) < 1
return ''
endif
2011-05-03 08:37:30 -04:00
return '\V' .split ( unexpected , "'" ) [1 ]
endfunction
2013-01-27 15:08:30 -05:00
function ! SyntaxCheckers_php_php_GetLocList ( )
2013-01-20 08:48:58 -05:00
let makeprg = syntastic #makeprg #build ( {
\ 'exe' : 'php' ,
\ 'args' : '-l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0' ,
\ 'subchecker' : 'php' })
2012-08-14 07:57:53 -04:00
let errorformat = '%-GNo syntax errors detected in%.%#,Parse error: %#syntax %trror\ , %m in %f on line %l,Parse %trror: %m in %f on line %l,Fatal %trror: %m in %f on line %l,%-G\s%#,%-GErrors parsing %.%#'
2013-01-31 12:31:40 -05:00
return SyntasticMake ( { 'makeprg' : makeprg , 'errorformat' : errorformat })
2012-10-27 16:20:25 -04:00
endfunction
2013-01-27 15:08:30 -05:00
call g :SyntasticRegistry .CreateAndRegisterChecker ( {
\ 'filetype' : 'php' ,
\ 'name' : 'php' })