<?xml version="1.0"?>
<ruleset name="AzuraCast">
    <description>The AzuraCast PHP coding standard.</description>

    <file>src</file>

    <exclude-pattern>src/Tests/*$</exclude-pattern>

    <arg name="basepath" value="."/>
    <arg name="extensions" value="php"/>
    <arg name="colors"/>

    <!-- relative path from PHPCS source location -->
    <config name="installed_paths" value="../../slevomat/coding-standard"/>

    <rule ref="PSR12"/>

    <!--
        even though PSR12 defines the soft limit for line length at 120
        we have a lot of line that barely exceed that, thus causing warnings
    -->
    <rule ref="Generic.Files.LineLength">
        <exclude-pattern>src/Entity/Migration/*$</exclude-pattern>

        <!--
            It's not very practical to check for the line length here since the "solutions" to the
            warnings would make the code partly less readable
        -->
        <exclude-pattern>src/Radio/Backend/Liquidsoap/ConfigWriter.php</exclude-pattern>
        <exclude-pattern>src/Installer/EnvFiles/*.php</exclude-pattern>
    </rule>

    <rule ref="SlevomatCodingStandard.Arrays.TrailingArrayComma"/>

    <rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint">
        <exclude-pattern>src/Entity/Migration/*$</exclude-pattern>
    </rule>
</ruleset>
