<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards">
	<description>WooCommerce dev PHP_CodeSniffer ruleset.</description>

    <!-- Exclude paths -->
	<exclude-pattern>./dist/*</exclude-pattern>
	<exclude-pattern>./docker/*</exclude-pattern>
	<exclude-pattern>./node_modules/*</exclude-pattern>
	<exclude-pattern>./vendor/*</exclude-pattern>
	<exclude-pattern>*\.(?!php$)</exclude-pattern>

	<!-- Configs -->
	<config name="minimum_supported_wp_version" value="5.6" />
	<config name="testVersion" value="7.0" />

	<!-- Rules -->
	<rule ref="WooCommerce-Core" >
		<exclude name="Generic.Commenting.Todo.TaskFound"/>
		<exclude name="Generic.Arrays.DisallowShortArraySyntax.Found"/>

		<!-- This rule is currently generating some false positives, it would be worth retrying after PHPCS upgrades -->
		<exclude name="Squiz.Commenting.FunctionCommentThrowTag.WrongNumber"/>

		<!-- The rules are ignored for now, they will be activated in a future PR -->
		<exclude name="Squiz.Commenting"/>
		<exclude name="WordPress.Security.EscapeOutput.OutputNotEscaped"/>
		<exclude name="WordPress.Security.NonceVerification.Missing"/>
	</rule>

	<!-- Disallow long array syntax -->
	<rule ref="Generic.Arrays.DisallowLongArraySyntax"/>

	<rule ref="WordPress.WP.I18n">
		<properties>
			<property name="text_domain" type="array" value="vendreo-card-gateway" />
		</properties>
	</rule>

	<rule ref="WordPress.Security.EscapeOutput">
		<properties>
			<property name="customEscapingFunctions" type="array" value="WC_Payments_Utils,esc_interpolated_html" />
		</properties>
	</rule>

	<rule ref="PHPCompatibility">
		<exclude-pattern>tests/</exclude-pattern>
	</rule>

	<rule ref="WordPress.Files.FileName.InvalidClassFileName">
		<exclude-pattern>tests/*</exclude-pattern>
	</rule>

	<rule ref="Generic.Commenting">
		<exclude-pattern>tests/</exclude-pattern>
	</rule>

	<rule ref="Squiz.Commenting.FunctionComment">
		<exclude-pattern>tests/</exclude-pattern>
	</rule>

	<!-- We don't need to do nonce checks in unit test code -->
	<rule ref="WordPress.Security.NonceVerification.Recommended">
		<exclude-pattern>tests/</exclude-pattern>
	</rule>
</ruleset>
