<?xml version="1.0"?>
<ruleset name="WP Job Manager">
	<description>A custom set of code standard rules to check for WordPress themes and plugins.</description>

	<arg value="s"/>
	<arg value="p"/>
	<arg name="colors"/>

	<arg name="extensions" value="php"/>
	<file>.</file>

	<exclude-pattern>node_modules/</exclude-pattern>
	<exclude-pattern>vendor/</exclude-pattern>
	<exclude-pattern>tests/</exclude-pattern>
	<exclude-pattern>tmp/</exclude-pattern>
	<exclude-pattern>build/</exclude-pattern>
	<exclude-pattern>assets/dist/</exclude-pattern>

	<!-- Temporarily exclude templates and lib for now -->
	<exclude-pattern>templates/</exclude-pattern>
	<exclude-pattern>lib/</exclude-pattern>

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

	<!-- Rules -->
	<rule ref="PHPCompatibilityWP"/>
	<rule ref="WordPress-Docs" />
	<rule ref="WordPress-Extra" />

	<rule ref="WordPress.Security.ValidatedSanitizedInput" />
	<rule ref="WordPress.DB.DirectDatabaseQuery" />

	<rule ref="Generic.Arrays.DisallowLongArraySyntax">
		<exclude-pattern>includes/class-wp-job-manager-dependency-checker.php</exclude-pattern>
		<exclude-pattern>/wp-job-manager.php</exclude-pattern>
		<exclude-pattern>/uninstall.php</exclude-pattern>
	</rule>

	<rule ref="Generic.Arrays.DisallowShortArraySyntax">
		<include-pattern>includes/class-wp-job-manager-dependency-checker.php</include-pattern>
		<include-pattern>/wp-job-manager.php</include-pattern>
		<include-pattern>/uninstall.php</include-pattern>
	</rule>

	<!-- Temporary Rule Exclusions -->
	<rule ref="VariableAnalysis">
		<exclude-pattern>includes/admin/views/</exclude-pattern>
		<exclude-pattern>templates/</exclude-pattern>

		<severity>4</severity>
	</rule>
	<!-- End of Temporary Rule Exclusions -->

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

	<rule ref="WordPress.WP.I18n">
		<properties>
			<property name="text_domain" type="array" value="wp-job-manager" />
		</properties>
	</rule>

	<rule ref="WordPress.Security.EscapeOutput">
		<properties>
			<property name="customEscapingFunctions" type="array">
				<element value="wpjm_esc_json"/>
			</property>
		</properties>
	</rule>

	<rule ref="Squiz.Commenting">
		<exclude-pattern>tests/</exclude-pattern>
		<exclude name="Squiz.Commenting.LongConditionClosingComment" />
		<exclude name="Squiz.Commenting.PostStatementComment" />
		<exclude name="Squiz.Commenting.FunctionComment.MissingParamComment" />
		<exclude-pattern>tests/*</exclude-pattern>
	</rule>
</ruleset>
