PMD CI (pmd-bot)
2024-03-15 17:11:36 +00:00
parent 437af18265
commit e270d57d43
52 changed files with 2605 additions and 2680 deletions

@ -1175,10 +1175,6 @@ a code {
color: #248ec2;
}
code + a > code {
margin-left: -7px;
}
table th code {
color: white;
}

@ -5,8 +5,8 @@
<description>Intended as a documentation theme based on Jekyll for technical writers documenting software and other technical products, this theme has all the elements you would need to handle multiple products with both multi-level sidebar navigation, tags, and other documentation features.</description>
<link>https://docs.pmd-code.org/latest/</link>
<atom:link href="https://docs.pmd-code.org/latest/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Fri, 15 Mar 2024 13:39:10 +0000</pubDate>
<lastBuildDate>Fri, 15 Mar 2024 13:39:10 +0000</lastBuildDate>
<pubDate>Fri, 15 Mar 2024 17:08:26 +0000</pubDate>
<lastBuildDate>Fri, 15 Mar 2024 17:08:26 +0000</lastBuildDate>
<generator>Jekyll v3.9.5</generator>
</channel>

@ -1888,7 +1888,7 @@
</li>
<li>
<p>Or you can join the <a href="https://lists.sourceforge.net/lists/listinfo/pmd-devel">Mailing List</a> or browse
through the archives (<a href="http://java-pmd.30631.n5.nabble.com/">archive1</a>, <a href="http://web.archive.org/web/20160715035623/http://blog.gmane.org:80/gmane.comp.java.audit.pmd.devel">archive2</a>).</p>
through the <a href="https://sourceforge.net/p/pmd/mailman/pmd-devel/">mailing list archive</a>.</p>
</li>
<li>
<p>Of course, you can also directly jump to our <a href="https://github.com/pmd/pmd">source code on github</a>.</p>

@ -1871,11 +1871,9 @@
<div id="inline-toc"><!-- empty, move TOC here when screen size too small --></div>
</details>
<p>The next version of PMD will be developed in parallel with this release. We will release additional bugfix versions as needed.</p>
<h2 id="source-code">Source Code</h2>
<h2 id="source-code">Source Code</h2>
<p>The complete source code can be found on github:</p>
<p>The complete source code can be found on Github:</p>
<ul>
<li><a href="https://github.com/pmd/pmd">github.com/pmd/pmd</a> - main PMD repository. Includes all the code to support all languages, including this documentation.</li>
@ -1887,7 +1885,7 @@
<h2 id="continuous-integration">Continuous Integration</h2>
<p>We use <a href="https://travis-ci.com/pmd">Travis CI</a> as our ci service. The main repo and the eclipse plugin are built for
<p>We use <a href="https://github.com/pmd/pmd/actions">GitHub Actions</a> as our ci service. The main repo and the eclipse plugin are built for
every push. Each pull request is built as well.</p>
<p>The maven snapshot artifacts are deployed at <a href="https://oss.sonatype.org/content/repositories/snapshots/net/sourceforge/pmd/pmd/">Sonatypes OSS snapshot repository</a>.</p>
@ -1896,7 +1894,11 @@ every push. Each pull request is built as well.</p>
<h2 id="documentation-and-webpages">Documentation and Webpages</h2>
<p>A <a href="http://pmd.sourceforge.net/snapshot">snapshot</a> of the web site for the new version is generated travis-ci as well.</p>
<p>Main documentation server is <a href="https://docs.pmd-code.org">docs.pmd-code.org</a>.</p>
<p>A <a href="http://docs.pmd-code.org/snapshot/">snapshot</a> of the web site for the new version is generated by the ci job as well.</p>
<p>The latest release documentation is always available under <a href="https://docs.pmd-code.org/latest/">docs.pmd-code.org/latest</a></p>
<h2 id="contributing">Contributing</h2>
@ -1942,7 +1944,7 @@ every push. Each pull request is built as well.</p>
&copy;2024 PMD Open Source Project. All rights
reserved. <br />
<span>Page last updated:</span>
August 2017<br /> Site last generated: Mar 15, 2024 <br />
March 2024<br /> Site last generated: Mar 15, 2024 <br />
<p>
<img src="images/logo/pmd-logo-70px.png" alt="PMD
logo"/>

@ -1875,7 +1875,7 @@
<h2 id="adding-support-for-a-cpd-language">Adding support for a CPD language</h2>
<p>CPD works generically on the tokens produced by a <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/Tokenizer.html#"><code>Tokenizer</code></a>.
<p>CPD works generically on the tokens produced by a <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdLexer.html#"><code>CpdLexer</code></a>.
To add support for a new language, the crucial piece is writing a CpdLexer that
splits the source file into the tokens specific to your language. Thankfully you
can use a stock <a href="https://github.com/antlr/grammars-v4">Antlr grammar</a> or JavaCC
@ -1894,7 +1894,7 @@ other languages.</li>
is automatically available in the binary distribution (pmd-dist).</li>
</ul>
</li>
<li>Implement a <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/Tokenizer.html#"><code>Tokenizer</code></a>.
<li>Implement a <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdLexer.html#"><code>CpdLexer</code></a>.
<ul>
<li>
<p>For Antlr grammars you can take the grammar from <a href="https://github.com/antlr/grammars-v4">antlr/grammars-v4</a> and place it in <code class="language-plaintext highlighter-rouge">src/main/antlr4</code> followed by the package name of the language. You then need to call the appropriate ant wrapper to generate
@ -1918,7 +1918,7 @@ Once that is done, <code class="language-plaintext highlighter-rouge">mvn genera
<ul>
<li>For JavaCC grammars, place your grammar in <code class="language-plaintext highlighter-rouge">etc/grammar</code> and edit the <code class="language-plaintext highlighter-rouge">pom.xml</code> like the <a href="https://github.com/pmd/pmd/blob/master/pmd-python/pom.xml">Python implementation</a> does.
You can then subclass <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/JavaCCTokenizer.html#"><code>JavaCCTokenizer</code></a> instead of AntlrTokenizer.</li>
You can then subclass <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/JavaccCpdLexer.html#"><code>JavaccCpdLexer</code></a> instead of AntlrCpdLexer.</li>
<li>For any other scenario just implement the interface however you can. Look at the Scala or Apex module for existing implementations.</li>
</ul>
</li>
@ -1979,9 +1979,9 @@ There is also the following Jekyll Include, that creates summary box for the lan
<h3 id="declaring-cpdlexer-options">Declaring CpdLexer options</h3>
<p>To make the CpdLexer configurable, first define some property descriptors using
<a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/properties/PropertyFactory.html#"><code>PropertyFactory</code></a>. Look at <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdLexer.html#"><code>CpdLexer</code></a>
<a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/properties/PropertyFactory.html#"><code>PropertyFactory</code></a>. Look at <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdLanguageProperties.html#"><code>CpdLanguageProperties</code></a>
for some predefined ones which you can reuse (prefer reusing property descriptors if you can).
You need to override <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/Language.html#newPropertyBundle()"><code>newPropertyBundle</code></a>
You need to override <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/Language.html#newPropertyBundle()"><code>newPropertyBundle</code></a>
and call <code class="language-plaintext highlighter-rouge">definePropertyDescriptor</code> to register the descriptors.
After that you can access the values of the properties from the parameter
of <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdCapableLanguage.html#createCpdTokenizer(net.sourceforge.pmd.lang.LanguagePropertyBundle)"><code>createCpdTokenizer</code></a>.</p>
@ -1995,7 +1995,7 @@ Take a look at the <a href="https://github.com/pmd/pmd/blob/master/pmd-kotlin/sr
<p>Add a Maven dependency on <code class="language-plaintext highlighter-rouge">pmd-lang-test</code> (scope <code class="language-plaintext highlighter-rouge">test</code>) in your <code class="language-plaintext highlighter-rouge">pom.xml</code>.
This contains utilities to test your CpdLexer.</p>
<p>Create a test class extending from <a href="https://docs.pmd-code.org/apidocs/pmd-lang-test/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/test/CpdTextComparisonTest.html#"><code>CpdTextComparisonTest</code></a>.
<p>Create a test class extending from <a href="https://docs.pmd-code.org/apidocs/pmd-lang-test/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/test/cpd/CpdTextComparisonTest.html#"><code>CpdTextComparisonTest</code></a>.
To add tests, you need to write regular JUnit <code class="language-plaintext highlighter-rouge">@Test</code>-annotated methods, and
call the method <code class="language-plaintext highlighter-rouge">doTest</code> with the name of the test file.</p>

@ -2029,7 +2029,7 @@ implementation that you need to extend to create your own adapter as we do with
<li>It can be used to provide other features for your language like
<ul>
<li>violation suppression logic</li>
<li><a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/reporting.html#"><code>reporting</code></a>s, to add additional language specific information to the
<li><a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/reporting/ViolationDecorator.html#"><code>ViolationDecorator</code></a>s, to add additional language specific information to the
created violations. The <a href="pmd_languages_java.html#violation-decorators">Java language module</a> uses this to
provide the method name or class name, where the violation occurred.</li>
<li>metrics</li>

@ -1965,7 +1965,7 @@ all the available tokens in the field <code class="language-plaintext highlighte
<li>It can be used to provide other features for your language like
<ul>
<li>violation suppression logic</li>
<li><a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/reporting.html#"><code>reporting</code></a>s, to add additional language specific information to the
<li><a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/reporting/ViolationDecorator.html#"><code>ViolationDecorator</code></a>s, to add additional language specific information to the
created violations. The <a href="pmd_languages_java.html#violation-decorators">Java language module</a> uses this to
provide the method name or class name, where the violation occurred.</li>
<li>metrics (see below “Optional features”)</li>

@ -1880,17 +1880,18 @@ transaction control statements on the Salesforce Platform server, in conjunction
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Apex&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.5.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-apex/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/apex/ApexLanguageModule.html#"&gt;&lt;code&gt;ApexLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: apex&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Apex
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.5.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-apex/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/apex/ApexLanguageModule.html#"><code>ApexLanguageModule</code></a></li>
<li class="list-group-item">Id: apex</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="metrics-framework">Metrics framework</h2>

@ -1879,17 +1879,18 @@ It is part of the Coco Platform from <a href="https://cocotec.io/">https://cocot
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Coco&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 7.0.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-coco/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/coco/CocoLanguageModule.html#"&gt;&lt;code&gt;CocoLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: coco&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Coco
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 7.0.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-coco/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/coco/CocoLanguageModule.html#"><code>CocoLanguageModule</code></a></li>
<li class="list-group-item">Id: coco</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="support-in-pmd">Support in PMD</h2>

@ -1893,7 +1893,7 @@ completely in uppercase:</p>
<p>Properties whose name start with <strong>CPD</strong> are used to configure CPD CpdLexer options.</p>
<p>Programmatically, the language properties can be set on <code class="language-plaintext highlighter-rouge">PMDConfiguration</code> (or <code class="language-plaintext highlighter-rouge">CPDConfiguration</code>) before using the
<a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/PmdAnalyzer.html#"><code>PmdAnalyzer</code></a> (or <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdAnalyzer.html#"><code>CpdAnalyzer</code></a>) instance
<a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/PmdAnalysis.html#"><code>PmdAnalysis</code></a> (or <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.0.0-SNAPSHOT/net/sourceforge/pmd/cpd/CpdAnalysis.html#"><code>CpdAnalysis</code></a>) instance
to start the analysis:</p>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">PMDConfiguration</span> <span class="n">configuration</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">PMDConfiguration</span><span class="o">();</span>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for C++&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 3.5&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-cpp/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/cpp/CppLanguageModule.html#"&gt;&lt;code&gt;CppLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: cpp&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for C++
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 3.5</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-cpp/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/cpp/CppLanguageModule.html#"><code>CppLanguageModule</code></a></li>
<li class="list-group-item">Id: cpp</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="language-properties">Language Properties</h2>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for C#&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 4.3&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-cs/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/cs/CsLanguageModule.html#"&gt;&lt;code&gt;CsLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: cs&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for C#
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 4.3</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-cs/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/cs/CsLanguageModule.html#"><code>CsLanguageModule</code></a></li>
<li class="list-group-item">Id: cs</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1878,17 +1878,18 @@
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Dart&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 6.14.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-dart/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/dart/DartLanguageModule.html#"&gt;&lt;code&gt;DartLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: dart&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Dart
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 6.14.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-dart/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/dart/DartLanguageModule.html#"><code>DartLanguageModule</code></a></li>
<li class="list-group-item">Id: dart</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Fortran&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-fortran/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.html#"&gt;&lt;code&gt;FortranLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: fortran&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Fortran
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-fortran/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.html#"><code>FortranLanguageModule</code></a></li>
<li class="list-group-item">Id: fortran</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1878,17 +1878,18 @@
The Gherkin syntax is designed to be non-technical, making it human-readable for a wide audience.</p>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Gherkin&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 6.48.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-gherkin/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/gherkin/GherkinLanguageModule.html#"&gt;&lt;code&gt;GherkinLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: gherkin&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Gherkin
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 6.48.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-gherkin/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/gherkin/GherkinLanguageModule.html#"><code>GherkinLanguageModule</code></a></li>
<li class="list-group-item">Id: gherkin</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="support-in-pmd">Support in PMD</h2>

@ -1878,17 +1878,18 @@
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Go&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.2.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-go/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/go/GoLanguageModule.html#"&gt;&lt;code&gt;GoLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: go&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Go
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.2.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-go/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/go/GoLanguageModule.html#"><code>GoLanguageModule</code></a></li>
<li class="list-group-item">Id: go</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1880,17 +1880,18 @@ familiar and easy to learn syntax.</p>
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Groovy&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.5.2&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-groovy/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.html#"&gt;&lt;code&gt;GroovyLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: groovy&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Groovy
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.5.2</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-groovy/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.html#"><code>GroovyLanguageModule</code></a></li>
<li class="list-group-item">Id: groovy</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="support-in-pmd">Support in PMD</h2>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for HTML&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 6.45.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-html/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/html/HtmlLanguageModule.html#"&gt;&lt;code&gt;HtmlLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: html&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for HTML
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 6.45.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-html/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/html/HtmlLanguageModule.html#"><code>HtmlLanguageModule</code></a></li>
<li class="list-group-item">Id: html</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<p>The HTML language module uses <a href="https://jsoup.org/">jsoup</a> for parsing.</p>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Java&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 1.0.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/JavaLanguageModule.html#"&gt;&lt;code&gt;JavaLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: java&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Java
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 1.0.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/JavaLanguageModule.html#"><code>JavaLanguageModule</code></a></li>
<li class="list-group-item">Id: java</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="overview-of-supported-java-language-versions">Overview of supported Java language versions</h2>
@ -2112,11 +2113,11 @@ within scope.</p>
if it e.g. references a variable name. In that case, you can access the referenced variable symbol
with the method <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/ASTAssignableExpr.ASTNamedReferenceExpr.html#getReferencedSym()"><code>getReferencedSym</code></a>.</p>
<p>Declaration nodes, such as <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.html#"><code>ASTVariableDeclaratorId</code></a> implement the interface
<p>Declaration nodes, such as <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/ASTVariableId.html#"><code>ASTVariableId</code></a> implement the interface
<a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/SymbolDeclaratorNode.html#"><code>SymbolDeclaratorNode</code></a>. Through the method
<a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/SymbolDeclaratorNode.html#getSymbol()"><code>getSymbol</code></a> you can also access the symbol.</p>
<p>To find usages, you can call <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.html#getLocalUsages()"><code>getLocalUsages</code></a>.</p>
<p>To find usages, you can call <a href="https://docs.pmd-code.org/apidocs/pmd-java/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/java/ast/ASTVariableId.html#getLocalUsages()"><code>getLocalUsages</code></a>.</p>
<h2 id="type-resolution-apis">Type resolution APIs</h2>

@ -1874,31 +1874,33 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for JavaScript&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-javascript/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/ecmascript/EcmascriptLanguageModule.html#"&gt;&lt;code&gt;EcmascriptLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: ecmascript&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for JavaScript
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-javascript/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/ecmascript/EcmascriptLanguageModule.html#"><code>EcmascriptLanguageModule</code></a></li>
<li class="list-group-item">Id: ecmascript</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for TypeScript&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 7.0.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-javascript/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/ecmascript/EcmascriptLanguageModule.html#"&gt;&lt;code&gt;EcmascriptLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: ts&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for TypeScript
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 7.0.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-javascript/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/typescript/TsLanguageModule.html#"><code>TsLanguageModule</code></a></li>
<li class="list-group-item">Id: ts</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="javascript">JavaScript</h2>

@ -1874,17 +1874,18 @@
</details>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Java Server Pages&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-jsp/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/jsp/JspLanguageModule.html#"&gt;&lt;code&gt;JspLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: jsp&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Java Server Pages
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-jsp/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/jsp/JspLanguageModule.html#"><code>JspLanguageModule</code></a></li>
<li class="list-group-item">Id: jsp</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="what-is-currently-supported-and-what-is-not">What is currently supported and what is not</h2>

@ -1881,17 +1881,18 @@ Julia programs compile to efficient native code for multiple platforms via LLVM.
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Julia&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 7.0.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-julia/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/julia/JuliaLanguageModule.html#"&gt;&lt;code&gt;JuliaLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: julia&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Julia
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 7.0.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-julia/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/julia/JuliaLanguageModule.html#"><code>JuliaLanguageModule</code></a></li>
<li class="list-group-item">Id: julia</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="support-in-pmd">Support in PMD</h2>

@ -1876,17 +1876,18 @@
<p><a href="https://kotlinlang.org/">Kotlin</a> support in PMD is based on the official grammar from <a href="https://github.com/Kotlin/kotlin-spec">https://github.com/Kotlin/kotlin-spec</a>.</p>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Kotlin&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 7.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-kotlin/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/kotlin/JspLanguageModule.html#"&gt;&lt;code&gt;JspLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: kotlin&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Kotlin
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 7.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-kotlin/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/kotlin/KotlinLanguageModule.html#"><code>KotlinLanguageModule</code></a></li>
<li class="list-group-item">Id: kotlin</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<p>Java-based rules and XPath-based rules are supported.</p>

@ -1878,17 +1878,18 @@
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Lua&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 6.17.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-lua/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/lua/LuaLanguageModule.html#"&gt;&lt;code&gt;LuaLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: lua&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Lua
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 6.17.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-lua/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/lua/LuaLanguageModule.html#"><code>LuaLanguageModule</code></a></li>
<li class="list-group-item">Id: lua</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<p>CPD support was added with PMD 6.17.0. Since PMD 6.50.0 support for <a href="https://github.com/Roblox/luau">Luau</a>,

@ -1876,17 +1876,18 @@
<p><a href="https://www.mathworks.com/">Matlab</a> scripts are supported for Copy-Paste-Detection only.</p>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Matlab&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.3.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-matlab/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.html#"&gt;&lt;code&gt;MatlabLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: matlab&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Matlab
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.3.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-matlab/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.html#"><code>MatlabLanguageModule</code></a></li>
<li class="list-group-item">Id: matlab</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1873,20 +1873,21 @@
<div id="inline-toc"><!-- empty, move TOC here when screen size too small --></div>
</details>
<p><a href="https://modelica.org/modelicalanguage">Modelica</a> is a language to model complex physical systems.</p>
<p><a href="https://modelica.org/language/">Modelica</a> is a language to model complex physical systems.</p>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Modelica&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 6.21.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-modelica/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/modelica/ModelicaLanguageModule.html#"&gt;&lt;code&gt;ModelicaLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: modelica&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Modelica
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 6.21.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-modelica/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/modelica/ModelicaLanguageModule.html#"><code>ModelicaLanguageModule</code></a></li>
<li class="list-group-item">Id: modelica</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1879,17 +1879,18 @@ a superset of the C programming language and provides object-oriented capabiliti
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for objectivec&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.3.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-objectivec/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.html#"&gt;&lt;code&gt;ObjectiveCLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: objectivec&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for objectivec
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.3.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-objectivec/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.html#"><code>ObjectiveCLanguageModule</code></a></li>
<li class="list-group-item">Id: objectivec</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1878,17 +1878,18 @@
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for Perl&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.5.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-perl/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/perl/PerlLanguageModule.html#"&gt;&lt;code&gt;PerlLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: perl&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for Perl
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.5.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-perl/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/perl/PerlLanguageModule.html#"><code>PerlLanguageModule</code></a></li>
<li class="list-group-item">Id: perl</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1878,17 +1878,18 @@
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for PHP&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 1.1&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-php/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/php/PhpLanguageModule.html#"&gt;&lt;code&gt;PhpLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: php&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ❌&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for PHP
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 1.1</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-php/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/php/PhpLanguageModule.html#"><code>PhpLanguageModule</code></a></li>
<li class="list-group-item">Id: php</li>
<li class="list-group-item">PMD: ❌</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>

@ -1879,17 +1879,18 @@ describes and explains how to use PL/SQL, the Oracle procedural extension of SQL
</blockquote>
<details class="language-info">
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;summary&gt;Language Info for PLSQL&lt;/summary&gt;
&lt;div class="card"&gt;
&lt;ul class="list-group list-group-flush"&gt;
&lt;li class="list-group-item"&gt;Since PMD 5.1.0&lt;/li&gt;
&lt;li class="list-group-item"&gt;Implementation: &lt;a href="https://docs.pmd-code.org/apidocs/pmd-plsql/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/plsql/PLSQLLanguageModule.html#"&gt;&lt;code&gt;PLSQLLanguageModule&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li class="list-group-item"&gt;Id: plsql&lt;/li&gt;
&lt;li class="list-group-item"&gt;PMD: ✔️&lt;/li&gt;
&lt;li class="list-group-item"&gt;CPD: ✔️&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</code></pre></div> </div>
<summary>Language Info for PLSQL
</summary>
<div class="card">
<ul class="list-group list-group-flush">
<li class="list-group-item">Since PMD 5.1.0</li>
<li class="list-group-item">Implementation: <a href="https://docs.pmd-code.org/apidocs/pmd-plsql/7.0.0-SNAPSHOT/net/sourceforge/pmd/lang/plsql/PLSQLLanguageModule.html#"><code>PLSQLLanguageModule</code></a></li>
<li class="list-group-item">Id: plsql</li>
<li class="list-group-item">PMD: ✔️</li>
<li class="list-group-item">CPD: ✔️</li>
</ul>
</div>
</details>
<h2 id="grammar">Grammar</h2>

Some files were not shown because too many files have changed in this diff Show More