kylekatarnls/sbp

View on GitHub
src/Sbp/Plugins/Core/SemiColon.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Sbp\Plugins\Core;

class SemiColon
{
    /******************************/
    /* Complete with a semi-colon */
    /******************************/
    public static function addSemiColons($content, $caller)
    {
        $validComments = call_user_func(array($caller, 'getValidComments'));
        $validSubst = call_user_func(array($caller, 'getValidStringSurrogates'));
        $validHtml = call_user_func(array($caller, 'getHtmlCodes'));
        $beforeSemiColon = '('.$validSubst.'|\+\+|--|[a-zA-Z0-9_\x7f-\xff]!|[a-zA-Z0-9_\x7f-\xff]~|!!|[a-zA-Z0-9_\x7f-\xff\)\]])(?<!<\?php|<\?)';

        return array(
            '#'.$beforeSemiColon.'(\s*(?:'.$validComments.'\s*)*[\n\r]+\s*(?:'.$validComments.'\s*)*)(?=[a-zA-Z0-9_\x7f-\xff\$\}]|$)#U' => '$1;$2',

            '#'.$beforeSemiColon.'(\s*(?:'.$validComments.'\s*)*)$#U' => '$1;$2',

            '#'.$beforeSemiColon.'(\s*(?:'.$validComments.'\s*)*\?>)$#U' => '$1;$2',

            '#'.$beforeSemiColon.'(\s*(?:'.$validComments.'\s*)*'.$validHtml.')$#U' => '$1;$2',

            '#('.$validSubst.'|\+\+|--|[a-zA-Z0-9_\x7f-\xff]!|[a-zA-Z0-9_\x7f-\xff]~|!!|\]|\))(\s*\n\s*\()#U' => '$1;$2',
        );
    }
}