<?xml version="1.0"?>
<ruleset name="Disable Blog - VIP Coding Standards">
	<description>VIP coding standards for WordPress plugin development</description>

	<!-- What to scan -->
	<file>.</file>
	<exclude-pattern>/vendor/</exclude-pattern>
	<exclude-pattern>/node_modules/</exclude-pattern>
	<exclude-pattern>/.github/</exclude-pattern>
	<exclude-pattern>/.wordpress-org/</exclude-pattern>
	<exclude-pattern>/languages/</exclude-pattern>
	<exclude-pattern>/tests/</exclude-pattern>
	<exclude-pattern>/bin/</exclude-pattern>
	<exclude-pattern>/assets/</exclude-pattern>

	<!-- How to scan -->
	<arg value="sp"/>
	<arg name="basepath" value="./"/>
	<arg name="colors"/>
	<arg name="extensions" value="php"/>
	<arg name="parallel" value="8"/>

	<!-- Rules: Check PHP version compatibility -->
	<config name="testVersion" value="7.4-"/>
	<rule ref="PHPCompatibilityWP">
		<include-pattern>*\.php$</include-pattern>
	</rule>

	<!-- Rules: VIP Coding Standards -->
	<config name="minimum_supported_wp_version" value="5.9"/>
	<rule ref="WordPress-VIP-Go">
		<!-- Exclude overly strict prefix rules that don't recognize -->
		<exclude name="WordPress.NamingConventions.PrefixAllGlobals.ShortPrefixPassed"/>
		<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound"/>
		<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound"/>
		<exclude name="WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound"/>
		<exclude name="WordPressVIPMinimum.Functions.RestrictedFunctions.flush_rewrite_rules_flush_rewrite_rules"/>
		<exclude name="WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound"/>
		<exclude name="WordPressVIPMinimum.Functions.RestrictedFunctions.wp_remote_get_wp_remote_get"/>
		<!-- Exclude JS scanning rules that cause deprecation warnings -->
		<exclude name="WordPressVIPMinimum.JS"/>
	</rule>

	<!-- Variable Analysis -->
	<rule ref="VariableAnalysis"/>

	<!-- Override prefix rules to accept our prefixes -->
	<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
		<properties>
			<property name="prefixes" type="array">
				<element value="disable_blog"/>
				<element value="dwpb"/>
				<element value="_aps"/>
				<element value="Disable_Blog"/>
				<element value="DWPB"/>
			</property>
		</properties>
	</rule>

	<!-- Text domain -->
	<rule ref="WordPress.WP.I18n">
		<properties>
			<property name="text_domain" type="array">
				<element value="disable-blog"/>
			</property>
		</properties>
	</rule>

	<!-- File naming -->
	<rule ref="WordPress.Files.FileName">
		<properties>
			<property name="strict_class_file_names" value="false"/>
		</properties>
	</rule>
	<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
		<exclude-pattern>*\.php$</exclude-pattern>
	</rule>

	<!-- Control structure spacing -->
	<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
		<properties>
			<property name="blank_line_check" value="false"/>
		</properties>
	</rule>
</ruleset>
