<?xml version="1.0"?>
<ruleset name="Comprehensive PMD Rules for all non-Salesforce Languages"
    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">

    <description>
        Comprehensive PMD Ruleset for all non-Salesforce languages.
    </description>

    <!-- Apex Rules -->
    <rule ref="category/apex/bestpractices.xml"></rule>
    <rule ref="category/apex/codestyle.xml"></rule>
    <rule ref="category/apex/design.xml"> </rule>
    <rule ref="category/apex/documentation.xml"></rule>
    <rule ref="category/apex/errorprone.xml"> </rule>
    <rule ref="category/apex/performance.xml"></rule>
    <rule ref="category/apex/security.xml"></rule>

    <!-- JavaScript/ECMAScript Rules -->
    <rule ref="category/ecmascript/bestpractices.xml"></rule>
    <rule ref="category/ecmascript/codestyle.xml"></rule>
    <rule ref="category/ecmascript/errorprone.xml"></rule>
    <rule ref="category/ecmascript/performance.xml"></rule>

    <!-- Visualforce Rules -->
    <rule ref="category/visualforce/security.xml"></rule>

     <!-- HTML Rules -->
     <rule ref="category/html/bestpractices.xml"></rule>

    <!-- PL/SQL Rules -->
    <rule ref="category/plsql/bestpractices.xml"></rule>
    <rule ref="category/plsql/codestyle.xml"> </rule>
    <rule ref="category/plsql/design.xml"></rule>
    <rule ref="category/plsql/errorprone.xml"></rule>

    <!-- Java Rules -->
    <rule ref="category/java/bestpractices.xml"></rule>
    <rule ref="category/java/codestyle.xml"></rule>
    <rule ref="category/java/design.xml"></rule>
    <rule ref="category/java/documentation.xml"></rule>
    <rule ref="category/java/errorprone.xml"></rule>
    <rule ref="category/java/multithreading.xml"></rule>
    <rule ref="category/java/performance.xml"></rule>
    <rule ref="category/java/security.xml"></rule>
</ruleset>
