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

	<file>.</file>

	<!-- Exclude paths -->
	<exclude-pattern>*/node_modules/*</exclude-pattern>
	<exclude-pattern>*/vendor/*</exclude-pattern>
	<exclude-pattern>*/build/*</exclude-pattern>

	<!-- Show progress, show the error codes for each message (source). -->
	<arg value="ps" />

	<!-- Strip the filepaths in reports down to the relevant bit. -->
	<arg name="basepath" value="./src/" />

	<!-- Check up to 8 files simultaneously. -->
	<arg name="parallel" value="8" />

	<!-- Configs -->
	<config name="minimum_supported_wp_version" value="5.2" />
	<config name="testVersion" value="7.4-" />

	<rule ref="WordPress.Files.FileName.InvalidClassFileName">
		<exclude-pattern>includes/**/abstract-*.php</exclude-pattern>
		<exclude-pattern>tests/</exclude-pattern>
		<exclude-pattern>src/</exclude-pattern>
		<exclude-pattern>tests/php/src/</exclude-pattern>
		<exclude-pattern>**/build/</exclude-pattern>
	</rule>

	<rule ref="Squiz.Classes.ClassFileName">
		<include-pattern>src/</include-pattern>
		<include-pattern>tests/php/src/</include-pattern>
	</rule>

	<rule ref="Squiz.Classes.ValidClassName">
		<include-pattern>src/</include-pattern>
		<include-pattern>tests/php/src/</include-pattern>
	</rule>

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

	<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
		<exclude-pattern>i18n/</exclude-pattern>
		<exclude-pattern>src/</exclude-pattern>
		<exclude-pattern>tests/php</exclude-pattern>
		<exclude-pattern>tests/Tools/</exclude-pattern>
	</rule>

	<rule ref="Squiz.Commenting.FileComment.MissingPackageTag">
		<exclude-pattern>src/</exclude-pattern>
		<exclude-pattern>tests/php/</exclude-pattern>
	</rule>
	<rule ref="Squiz.Commenting.FileComment.Missing">
		<exclude-pattern>src/</exclude-pattern>
		<exclude-pattern>tests/php/</exclude-pattern>
	</rule>

	<rule ref="Squiz.Commenting.FunctionCommentThrowTag.Missing">
		<exclude-pattern>tests/php/</exclude-pattern>
	</rule>

	<rule ref="Squiz.Commenting.FileComment.Missing">
		<exclude-pattern>tests/php/</exclude-pattern>
	</rule>

</ruleset>
