<?xml version="1.0"?>
<!-- Buckaroo WooCommerce - PSR-12 ruleset -->
<ruleset name="Buckaroo-WooCommerce-PSR12">
    <description>PSR-12 compliance for all PHP maintained source while ignoring
        vendor, generated or legacy artefacts.
    </description>

    <!-- Scan only first-party PHP -->
    <file>src</file>
    <file>library</file>
    <file>templates</file>
    <exclude-pattern>vendor/*</exclude-pattern>
    <exclude-pattern>vendor_buckaroo/*</exclude-pattern>
    <exclude-pattern>tests/*</exclude-pattern>
    <exclude-pattern>assets/js/dist</exclude-pattern>
    <exclude-pattern>assets/js/node_modules</exclude-pattern>
    <exclude-pattern>bin/*</exclude-pattern>
    <exclude-pattern>languages/*</exclude-pattern>

    <rule ref="PSR12">
        <exclude name="PSR12.Classes.ClassConstantVisibility.NotFound"/>
        <!-- turn off camelCase check for method names -->
        <exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
    </rule>


    <!-- Project-specific tweaks -->
    <rule ref="Generic.Files.LineLength">
        <severity>0</severity>
    </rule>

    <!-- Allow snake_case template functions that WordPress expects -->
    <rule ref="Squiz.Functions.GlobalFunction">
        <severity>0</severity>
    </rule>
</ruleset>
