<commit_before>"============================================================================
"File:        php.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer:  <NAME> <<EMAIL>>
"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.
"
"============================================================================
"
"This syntax checker is composed of three checkers:
"   - php -l
"   - phpcs (see http://pear.php.net/package/PHP_CodeSniffer)
"   - phpmd (see http://phpmd.org)
"
"If any of these checkers are installed then they will be used. Phpcs and
"Phpmd are 'style checkers' and will only be called if `php -l` doesnt find
"any syntax errors.
"
"There are options below to config and disable phpcs and phpmd.


"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") || !executable('phpcs')
    let g:syntastic_phpcs_disable = 0
endif


if !exists("g:syntastic_phpmd_disable") || !executable('phpmd')
    let g:syntastic_phpmd_disable = 0
endif


"Support passing selected rules to phpmd
if !exists("g:syntastic_phpmd_rules")
    let g:syntastic_phpmd_rules = "codesize,design,unusedcode,naming"
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 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)
        if !g:syntastic_phpcs_disable
            let errors = errors + s:GetPHPCSErrors()
        endif

        if !g:syntastic_phpmd_disable
            let errors = errors + s:GetPHPMDErrors()
        endif
    end

    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

"Helper function. This one runs and parses phpmd tool output.
function! s:GetPHPMDErrors()
    let makeprg = "phpmd " . shellescape(expand('%')) . " text " . g:syntastic_phpmd_rules
    let errorformat = '%E%f:%l%m'
    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype' : 'Style' })
endfunction<commit_msg>make php checker use syntastic#makeprg#build<commit_after>"============================================================================
"File:        php.vim
"Description: Syntax checking plugin for syntastic.vim
"Maintainer:  <NAME> <<EMAIL>in.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.
"
"============================================================================
"
"This syntax checker is composed of three checkers:
"   - php -l
"   - phpcs (see http://pear.php.net/package/PHP_CodeSniffer)
"   - phpmd (see http://phpmd.org)
"
"If any of these checkers are installed then they will be used. Phpcs and
"Phpmd are 'style checkers' and will only be called if `php -l` doesnt find
"any syntax errors.
"
"There are options below to config and disable phpcs and phpmd.


"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") || !executable('phpcs')
    let g:syntastic_phpcs_disable = 0
endif


if !exists("g:syntastic_phpmd_disable") || !executable('phpmd')
    let g:syntastic_phpmd_disable = 0
endif


"Support passing selected rules to phpmd
if !exists("g:syntastic_phpmd_rules")
    let g:syntastic_phpmd_rules = "codesize,design,unusedcode,naming"
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 makeprg = syntastic#makeprg#build({
                \ 'exe': 'php',
                \ 'args': '-l -d error_reporting=E_ALL -d display_errors=1 -d log_errors=0',
                \ 'subchecker': 'php' })
    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)
        if !g:syntastic_phpcs_disable
            let errors = errors + s:GetPHPCSErrors()
        endif

        if !g:syntastic_phpmd_disable
            let errors = errors + s:GetPHPMDErrors()
        endif
    end

    return errors
endfunction

function! s:GetPHPCSErrors()
    let makeprg = syntastic#makeprg#build({
                \ 'exe': 'phpcs',
                \ 'args': g:syntastic_phpcs_conf . " --report=csv",
                \ 'subchecker': 'phpcs' })
    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

"Helper function. This one runs and parses phpmd tool output.
function! s:GetPHPMDErrors()
    let makeprg = syntastic#makeprg#build({
                \ 'exe': 'phpmd',
                \ 'args': 'text ' . g:syntastic_phpmd_rules,
                \ 'subchecker': 'phpcs' })
    let errorformat = '%E%f:%l%m'
    return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat, 'subtype' : 'Style' })
endfunction
{'fraction_non_alphanumeric': 0.1706548216076802, 'fraction_numerical': 0.0031523140851124802, 'mean_word_length': 3.6533333333333333, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7213730', 'n_tokens_mistral': 2362, 'n_tokens_neox': 2288, 'n_words': 629}