<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards for Plugins">
	<description>Generally-applicable sniffs for WordPress plugins</description>

	<!-- PHP 7.3 and higher. -->
	<config name="testVersion" value="7.3-"/>
	<!-- <rule ref="PHPCompatibilityWP"/> -->
	<!-- Check all PHP files in directory tree by default. -->
	<arg name="extensions" value="php"/>
	<file>.</file>

	<!-- Exclude lib -->
	<exclude-pattern>*/node_modules/*</exclude-pattern>
	<exclude-pattern>*/vendor/*</exclude-pattern>
	<exclude-pattern>*/autoload/*</exclude-pattern>
	<exclude-pattern>*/library/*</exclude-pattern>
	<exclude-pattern>*/lib/*</exclude-pattern>
	<exclude-pattern>*/assets/*</exclude-pattern>
	<exclude-pattern>*/freemius/*</exclude-pattern>
	<exclude-pattern>*/languages/*</exclude-pattern>
	<exclude-pattern>*/services/*</exclude-pattern>

	<!-- PHP 7.3 and higher. -->
    <config name="testVersion" value="7.3-"/>

	<!-- Arguments - extension, parallel, colors, show porgress, Show sniff codes in all reports -->
	<arg name="extensions" value="php"/>
	<arg name="parallel" value="20"/>
	<arg name="colors"/>
    <arg value="sp"/>
	<arg value="s"/>

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

	<rule ref="WordPress.WP.I18n">
		<properties>
			<property name="text_domain" type="array">
				<element value="webinarignition"/>
			</property>
		</properties>
	</rule>

	<rule ref="Generic.Arrays.DisallowShortArraySyntax.Found">
		<severity>0</severity>
	</rule>

	<!-- Exclude rules -->
	<rule ref="WordPress-Core">
		<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
	</rule>

	<rule ref="Squiz.Commenting">
        <exclude name="Squiz.Commenting.FileComment"/>
		<exclude name="Squiz.Commenting.PostStatementComment"/>
    </rule>

	<rule ref="WordPress-Extra">
		<exclude name="Generic.Commenting.DocComment.MissingShort" />
		<exclude name="Generic.Formatting.MultipleStatementAlignment" />
		<exclude name="Generic.Arrays.DisallowShortArraySyntax.Found" />
		<exclude name="Squiz.Commenting.ClassComment.Missing" />
		<exclude name="Squiz.Commenting.FileComment.Missing" />
		<exclude name="Squiz.Commenting.FunctionComment.Missing" />
		<exclude name="Squiz.Commenting.FunctionComment.MissingParamComment" />
		<exclude name="Squiz.Commenting.VariableComment.Missing" />
		<exclude name="Squiz.PHP.EmbeddedPhp.ContentBeforeOpen" />
		<exclude name="Squiz.PHP.EmbeddedPhp.ContentAfterOpen" />
		<exclude name="Squiz.PHP.EmbeddedPhp.ContentBeforeEnd" />
		<exclude name="Squiz.PHP.EmbeddedPhp.ContentAfterEnd" />
		<exclude name="WordPress.Arrays.MultipleStatementAlignment" />
		<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
		<exclude name="WordPress.WP.I18n.MissingTranslatorsComment" />
		<exclude name="WordPress.WP.I18n.NonSingularStringLiteralSingle" />
		<exclude name="WordPress.WP.I18n.NonSingularStringLiteralPlural" />
		<exclude name="WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet" />
		<exclude name="PEAR.Functions.FunctionCallSignature.ContentAfterOpenBracket" />
		<exclude name="PEAR.Functions.FunctionCallSignature.MultipleArguments" />
		<exclude name="PEAR.Functions.FunctionCallSignature.CloseBracketLine" />
		<exclude name="WordPress.Files.FileName.NotHyphenatedLowercase" />
		<exclude name="WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase" />
		<exclude name="Squiz.Commenting.InlineComment.InvalidEndChar" />
		<exclude name="WordPress.NamingConventions.ValidHookName.UseUnderscores" />
		<exclude name="WordPress.NamingConventions.ValidHookName.NotLowercase" />
		<exclude name="WordPress.WP.DiscouragedFunctions.wp_reset_query_wp_reset_query" />
		<exclude name="WordPress.Arrays.CommaAfterArrayItem.NoComma" />
	</rule>

	<rule ref="WordPress.WP.DeprecatedFunctions">
		<properties>
			<!-- <property name="minimum_supported_version" value="4.7" /> -->
		</properties>
	</rule>
	<rule ref="WordPress.NamingConventions.ValidHookName">
		<properties>
			<property name="additionalWordDelimiters" value="/-" />
		</properties>
	</rule>

	<!-- Prefer alignment over line length. -->
	<rule ref="WordPress.Arrays.MultipleStatementAlignment">
		<properties>
			<property name="maxColumn" value="1000" />
		</properties>
	</rule>

	<rule ref="WordPress.DB.SlowDBQuery" />
</ruleset>