a26d3aef58
The current makeprg doesn't work with php-5.3. display_errors=0 has disabled error outputting and error_log='' disables the error log. With php-5.4 error_log='' is causing errors to be logged to stderr. This patch disables the error_log and enables display_errors. Theoretically errors are displayed on stdout, however php in mountain lion seems to insist on outputting to stderr. As we're now displaying errors rather than logging them to error format has changed to no longer include 'PHP ' and I've removed duplicates. This has been tested with PHP 5.3.13 with Suhosin-Patch (cli) (built: Jun 20 2012 17:05:20) (mountain lion) and PHP 5.4.4 (cli) (built: Jul 2 2012 16:33:50) Fedora 17
59 lines
2.3 KiB
VimL
59 lines
2.3 KiB
VimL
"============================================================================
|
|
"File: php.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_php_syntax_checker")
|
|
finish
|
|
endif
|
|
let loaded_php_syntax_checker = 1
|
|
|
|
"bail if the user doesnt have php installed
|
|
if !executable("php")
|
|
finish
|
|
endif
|
|
|
|
"Support passing configuration directives to phpcs
|
|
if !exists("g:syntastic_phpcs_conf")
|
|
let g:syntastic_phpcs_conf = ""
|
|
endif
|
|
|
|
if !exists("g:syntastic_phpcs_disable")
|
|
let g:syntastic_phpcs_disable = 0
|
|
endif
|
|
|
|
function! SyntaxCheckers_php_GetHighlightRegex(item)
|
|
let unexpected = matchstr(a:item['text'], "unexpected '[^']\\+'")
|
|
if len(unexpected) < 1
|
|
return ''
|
|
endif
|
|
return '\V'.split(unexpected, "'")[1]
|
|
endfunction
|
|
|
|
function! SyntaxCheckers_php_GetLocList()
|
|
|
|
let errors = []
|
|
|
|
let makeprg = "php -l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0 ".shellescape(expand('%'))
|
|
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 %.%#'
|
|
let errors = SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat })
|
|
|
|
if empty(errors) && !g:syntastic_phpcs_disable && executable("phpcs")
|
|
let errors = errors + s:GetPHPCSErrors()
|
|
endif
|
|
|
|
return errors
|
|
endfunction
|
|
|
|
function! s:GetPHPCSErrors()
|
|
let makeprg = "phpcs " . g:syntastic_phpcs_conf . " --report=csv ".shellescape(expand('%'))
|
|
let errorformat = '%-GFile\,Line\,Column\,Type\,Message\,Source\,Severity,"%f"\,%l\,%c\,%t%*[a-zA-Z]\,"%m"\,%*[a-zA-Z0-9_.-]\,%*[0-9]'
|
|
return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype': 'Style' })
|
|
endfunction
|