<?xml version="1.0"?>
<ruleset name="Maple Local Fonts">
    <description>PHP Coding Standards for Maple Local Fonts WordPress Plugin</description>

    <!-- Scan these files -->
    <file>.</file>

    <!-- Exclude these files/directories -->
    <exclude-pattern>/vendor/*</exclude-pattern>
    <exclude-pattern>/tests/*</exclude-pattern>
    <exclude-pattern>/bin/*</exclude-pattern>
    <exclude-pattern>/build/*</exclude-pattern>
    <exclude-pattern>/node_modules/*</exclude-pattern>
    <exclude-pattern>*.min.js</exclude-pattern>
    <exclude-pattern>*.min.css</exclude-pattern>

    <!-- Show progress and sniff codes -->
    <arg value="ps"/>
    <arg name="colors"/>

    <!-- Use WordPress Coding Standards -->
    <rule ref="WordPress">
        <!-- Allow short array syntax -->
        <exclude name="Generic.Arrays.DisallowShortArraySyntax"/>
        <!-- Allow file names that don't match class names (for index.php files) -->
        <exclude name="WordPress.Files.FileName.InvalidClassFileName"/>
        <exclude name="WordPress.Files.FileName.NotHyphenatedLowercase"/>
    </rule>

    <!-- Use WordPress Extra Standards -->
    <rule ref="WordPress-Extra">
        <exclude name="WordPress.Files.FileName"/>
    </rule>

    <!-- Check for PHP cross-version compatibility -->
    <config name="testVersion" value="7.4-"/>
    <rule ref="PHPCompatibilityWP"/>

    <!-- WordPress-specific settings -->
    <config name="minimum_supported_wp_version" value="6.5"/>

    <!-- Text domain for i18n -->
    <rule ref="WordPress.WP.I18n">
        <properties>
            <property name="text_domain" type="array">
                <element value="maple-local-fonts"/>
            </property>
        </properties>
    </rule>

    <!-- Prefix all globals -->
    <rule ref="WordPress.NamingConventions.PrefixAllGlobals">
        <properties>
            <property name="prefixes" type="array">
                <element value="mlf"/>
                <element value="MLF"/>
                <element value="maple_local_fonts"/>
            </property>
        </properties>
    </rule>
</ruleset>
