<?xml version="1.0"?>
<ruleset name="Custom">
    <description>A custom coding standard</description>

    <!-- Don't sniff third party libraries -->
    <exclude-pattern>*/themes/simple/*</exclude-pattern>
    <exclude-pattern>*/vendor/*</exclude-pattern>
    <exclude-pattern>*/thirdparty/*</exclude-pattern>

    <!-- Show progress and output sniff names on violation, and add colours -->
    <arg value="sp"/>
    <arg name="colors"/>
    <arg name="report" value="csv"/>
    <arg name="extensions" value="php/php,inc/php"/>

    <!-- Use PSR-2 as a base standard -->
    <rule ref="PSR2">
        <!-- Allow Windows-like EOL-characters -->
        <exclude name="Generic.Files.LineEndings.InvalidEOLChar"/>
        <!-- Allow classes to not declare a namespace -->
        <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
        <!-- Allow namespaces without a following EOL-character -->
        <exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter"/>
        <!-- Allow files to have no EOL-character at the end of the file -->
        <exclude name="PSR2.Files.EndFileNewline.NoneFound"/>
        <!-- Allow underscores in class names -->
        <exclude name="Squiz.Classes.ValidClassName.NotCamelCaps"/>
        <!-- Allow non camel cased method names -->
        <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
    </rule>
    <!-- Force files to have no EOL-character at the end of file -->
    <rule ref="Generic.Files.EndFileNoNewline.Found"/>
</ruleset>