<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	name="Mind"
	xsi:noNamespaceSchemaLocation="./vendor/squizlabs/php_codesniffer/phpcs.xsd">

	<description>Apply WordPress Coding Standards to all files</description>

	<!--
	#############################################################################
	COMMAND LINE ARGUMENTS
	https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
	#############################################################################
	-->

	<!-- Check the /src/ directory and the directories below it. -->
	<file>.</file>
	<exclude-pattern>./build/*</exclude-pattern>
	<exclude-pattern>./vendor/*</exclude-pattern>
	<exclude-pattern>./vendors/*</exclude-pattern>
	<exclude-pattern>./node_modules/*</exclude-pattern>


	<!-- Only check the PHP files. JS files are checked separately with JSCS and JSHint. -->
	<arg name="extensions" value="php" />

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

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

	<!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. -->
	<arg name="cache" />

	<!-- Set the memory limit to 256M.
		For most standard PHP configurations, this means the memory limit will temporarily be raised.
		Ref: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#specifying-phpini-settings
	-->
	<ini name="memory_limit" value="256M" />


	<!--
	#############################################################################
	SET THE RULES TO USE
	See https://github.com/WordPress/WordPress-Coding-Standards
	See https://github.com/PHPCompatibility/PHPCompatibility
	#############################################################################
	-->

	<!-- Include sniffs for PHP cross-version compatibility. -->
	<config name="testVersion" value="7.2-"/>
	<rule ref="PHPCompatibilityWP">
		<include-pattern>*\.php$</include-pattern>
	</rule>

	<rule ref="WordPress-Core" />
	<rule ref="WordPress-Docs" />
	<rule ref="WordPress.WP.I18n" />
	<config name="text_domain" value="mind" />

	<rule ref="VariableAnalysis.CodeAnalysis.VariableAnalysis">
		<properties>
			<property name="allowUnusedParametersBeforeUsed" value="true"/>
		</properties>
	</rule>
	<rule ref="WordPress.CodeAnalysis.EmptyStatement"/>

	<!--
	#############################################################################
	SNIFF SPECIFIC CONFIGURATION
	See https://github.com/WordPress/WordPress-Coding-Standards/wiki
	#############################################################################
	-->

	<!-- Set the minimum supported WP version to WP 6.0. -->
	<config name="minimum_supported_wp_version" value="6.0"/>

	<!-- Prevent error about filename with Class -->
	<rule ref="WordPress.Files.FileName">
		<properties>
			<property name="strict_class_file_names" value="false" />
		</properties>
	</rule>

	<!-- Allow arrays short syntax -->
	<rule ref="WordPress-Extra">
		<exclude name="Generic.Arrays.DisallowShortArraySyntax"/>
	</rule>

	<!-- Verify that everything in the global namespace is prefixed with a theme specific prefix.
		Multiple valid prefixes can be provided as a comma-delimited list. -->
	<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
		<properties>
			<property name="prefixes" type="array">
				<element value="Mind"/>
				<element value="mind"/>
			</property>
		</properties>
	</rule>
</ruleset>
