Update documentation
https://github.com/pmd/pmd/actions/runs/11054513916
083e296c1e...242b45a180
This commit is contained in:
8
404.html
8
404.html
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Page Not Found
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/404.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/404.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Page Not Found</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/404.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/404.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1922,7 +1922,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/404.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/404.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
4
feed.xml
4
feed.xml
@ -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>Thu, 26 Sep 2024 14:09:15 +0000</pubDate>
|
||||
<lastBuildDate>Thu, 26 Sep 2024 14:09:15 +0000</lastBuildDate>
|
||||
<pubDate>Thu, 26 Sep 2024 14:55:08 +0000</pubDate>
|
||||
<lastBuildDate>Thu, 26 Sep 2024 14:55:08 +0000</lastBuildDate>
|
||||
<generator>Jekyll v3.10.0</generator>
|
||||
|
||||
</channel>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Documentation Index
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/index.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/index.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Documentation Index</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/index.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/index.md">
|
||||
|
||||
|
||||
<div class="summary">Welcome to the documentation site for PMD and CPD! <br/><br/>
|
||||
@ -8433,7 +8433,7 @@ Contributions of any kind welcome!</p>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/index.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/index.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» License
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/license.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/license.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">License</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/license.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/license.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -2166,7 +2166,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/license.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/license.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» News
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/news/news.html"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/news/news.html"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">News</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/news/news.html">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/news/news.html">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1931,7 +1931,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/news/news.html"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/news/news.html"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» News
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/news/news_archive.html"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/news/news_archive.html"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">News</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/news/news_archive.html">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/news/news_archive.html">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1932,7 +1932,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/news/news_archive.html"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/news/news_archive.html"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Getting Help
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/help.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/help.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Getting Help</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/help.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/help.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1942,7 +1942,7 @@ through the <a href="https://sourceforge.net/p/pmd/mailman/pmd-devel/">mailing l
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/help.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/help.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Release schedule and version policies
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/release_policies.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/release_policies.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Release schedule and version policies</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/release_policies.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/release_policies.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1946,9 +1946,9 @@ a patch release.</p>
|
||||
<h2 id="git-branchestags-policy">Git branches/tags policy</h2>
|
||||
|
||||
<ul>
|
||||
<li>Main development happens on the main branch (currently called <code class="language-plaintext highlighter-rouge">master</code>).</li>
|
||||
<li>Main development happens on the main branch (currently called <code class="language-plaintext highlighter-rouge">main</code>).</li>
|
||||
<li>PR and enhancements are done on the main branch.</li>
|
||||
<li>Release are usually done directly from the main branch, we don’t create release branches.</li>
|
||||
<li>Releases are usually done directly from the main branch, we don’t create release branches.</li>
|
||||
<li>Each release has its own tag named <code class="language-plaintext highlighter-rouge">pmd_releases/MAJOR.MINOR.PATCH</code>.</li>
|
||||
<li>In case of a patch release, we either do it from the main branch (if there was no development ongoing)
|
||||
or create a separate branch off the last release tag.</li>
|
||||
@ -1973,7 +1973,7 @@ or create a separate branch off the last release tag.</li>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/release_policies.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/release_policies.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Support lifecycle
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/support_lifecycle.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/support_lifecycle.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Support lifecycle</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/support_lifecycle.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/support_lifecycle.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1989,7 +1989,7 @@ We recommend to always update to the latest version to benefit from new features
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/about/support_lifecycle.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/about/support_lifecycle.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Building PMD from source
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/building.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/building.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Building PMD from source</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/building.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/building.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -2010,7 +2010,7 @@ They’re also in the jar file that’s included with both the source and binary
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/building.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/building.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Developer Resources
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/development.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/development.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Developer Resources</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/development.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/development.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1934,8 +1934,8 @@ every push. Each pull request is built as well.</p>
|
||||
|
||||
<p>First off, thanks for taking the time to contribute!</p>
|
||||
|
||||
<p>Please have a look at <a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md">CONTRIBUTING.md</a> and
|
||||
<a href="https://github.com/pmd/pmd/blob/master/BUILDING.md">BUILDING.md</a>.</p>
|
||||
<p>Please have a look at <a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md">CONTRIBUTING.md</a> and
|
||||
<a href="https://github.com/pmd/pmd/blob/main/BUILDING.md">BUILDING.md</a>.</p>
|
||||
|
||||
|
||||
<div class="tags">
|
||||
@ -1962,7 +1962,7 @@ every push. Each pull request is built as well.</p>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/development.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/development.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» How PMD Works
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/how_pmd_works.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/how_pmd_works.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">How PMD Works</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/how_pmd_works.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/how_pmd_works.md">
|
||||
|
||||
|
||||
<div class="summary">Processing overview of the different steps taken by PMD.</div>
|
||||
@ -1973,7 +1973,7 @@ type resolution information and DFA nodes.</li>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/how_pmd_works.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/how_pmd_works.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Logging
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/logging.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/logging.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Logging</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/logging.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/logging.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1979,7 +1979,7 @@ The default configuration is provided in <code class="language-plaintext highlig
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/logging.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/logging.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» How to add a new CPD language
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">How to add a new CPD language</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md">
|
||||
|
||||
|
||||
<div class="summary">How to add a new language module with CPD support.</div>
|
||||
@ -1916,7 +1916,7 @@ easy to implement the Tokenizer interface.</p>
|
||||
<p>Use the following guide to set up a new language module that supports CPD.</p>
|
||||
|
||||
<ol>
|
||||
<li>Create a new Maven module for your language. You can take <a href="https://github.com/pmd/pmd/tree/master/pmd-go/pom.xml">the Golang module</a> as an example.
|
||||
<li>Create a new Maven module for your language. You can take <a href="https://github.com/pmd/pmd/tree/main/pmd-go/pom.xml">the Golang module</a> as an example.
|
||||
<ul>
|
||||
<li>Make sure to add your new module to the parent pom as <code class="language-plaintext highlighter-rouge"><module></code> entry, so that it is built alongside the
|
||||
other languages.</li>
|
||||
@ -1928,7 +1928,7 @@ is automatically available in the binary distribution (pmd-dist).</li>
|
||||
<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
|
||||
the lexer from the grammar. To do so, edit <code class="language-plaintext highlighter-rouge">pom.xml</code> (eg like <a href="https://github.com/pmd/pmd/tree/master/pmd-go/pom.xml">the Golang module</a>).
|
||||
the lexer from the grammar. To do so, edit <code class="language-plaintext highlighter-rouge">pom.xml</code> (eg like <a href="https://github.com/pmd/pmd/tree/main/pmd-go/pom.xml">the Golang module</a>).
|
||||
Once that is done, <code class="language-plaintext highlighter-rouge">mvn generate-sources</code> should generate the lexer sources for you.</p>
|
||||
|
||||
<p>You can now implement a CpdLexer, for instance by extending <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/AntlrCpdLexer.html#"><code>AntlrCpdLexer</code></a>. The following reproduces the Go implementation:
|
||||
@ -1951,7 +1951,7 @@ Once that is done, <code class="language-plaintext highlighter-rouge">mvn genera
|
||||
change each token e.g. into uppercase, so that CPD sees the same strings and can find duplicates even when
|
||||
the casing differs. See <a href="https://docs.pmd-code.org/apidocs/pmd-tsql/7.6.0-SNAPSHOT/net/sourceforge/pmd/lang/tsql/cpd/TSqlCpdLexer.html#"><code>TSqlCpdLexer</code></a> for an example. You will also need a
|
||||
“CaseChangingCharStream”, so that antlr itself is case-insensitive.</li>
|
||||
<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.
|
||||
<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/main/pmd-python/pom.xml">Python implementation</a> does.
|
||||
You can then subclass <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/JavaccCpdLexer.html#"><code>JavaccCpdLexer</code></a> instead of AntlrCpdLexer.</li>
|
||||
<li>If your JavaCC based language is case-insensitive (option <code class="language-plaintext highlighter-rouge">IGNORE_CASE=true</code>), then you need to implement
|
||||
<a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/lang/ast/impl/javacc/JavaccTokenDocument.TokenDocumentBehavior.html#"><code>JavaccTokenDocument.TokenDocumentBehavior</code></a>, which can change each token
|
||||
@ -1986,7 +1986,7 @@ If your language only supports CPD, then you can subclass <a href="https://docs.
|
||||
<p>At this point the new language module should be available in <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/lang/LanguageRegistry.html#CPD"><code>CPD</code></a> and usable by CPD like any other language.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Update the test that asserts the list of supported languages by updating the <code class="language-plaintext highlighter-rouge">SUPPORTED_LANGUAGES</code> constant in <a href="https://github.com/pmd/pmd/blob/master/pmd-dist/src/test/java/net/sourceforge/pmd/dist/BinaryDistributionIT.java">BinaryDistributionIT</a>.</p>
|
||||
<p>Update the test that asserts the list of supported languages by updating the <code class="language-plaintext highlighter-rouge">SUPPORTED_LANGUAGES</code> constant in <a href="https://github.com/pmd/pmd/blob/main/pmd-dist/src/test/java/net/sourceforge/pmd/dist/BinaryDistributionIT.java">BinaryDistributionIT</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Add some tests for your CpdLexer by following the <a href="#testing-your-implementation">section below</a>.</p>
|
||||
@ -2025,7 +2025,7 @@ of <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/source
|
||||
|
||||
<p>To implement simple token filtering, you can use <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/BaseTokenFilter.html#"><code>BaseTokenFilter</code></a>
|
||||
as a base class, or another base class in <a href="https://docs.pmd-code.org/apidocs/pmd-core/7.6.0-SNAPSHOT/net/sourceforge/pmd/cpd/impl/package-summary.html#"><code>net.sourceforge.pmd.cpd.impl</code></a>.
|
||||
Take a look at the <a href="https://github.com/pmd/pmd/blob/master/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/cpd/KotlinCpdLexer.java">Kotlin token filter implementation</a>, or the <a href="https://github.com/pmd/pmd/blob/master/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/cpd/JavaCpdLexer.java">Java one</a>.</p>
|
||||
Take a look at the <a href="https://github.com/pmd/pmd/blob/main/pmd-kotlin/src/main/java/net/sourceforge/pmd/lang/kotlin/cpd/KotlinCpdLexer.java">Kotlin token filter implementation</a>, or the <a href="https://github.com/pmd/pmd/blob/master/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/cpd/JavaCpdLexer.java">Java one</a>.</p>
|
||||
|
||||
<h3 id="testing-your-implementation">Testing your implementation</h3>
|
||||
|
||||
@ -2107,7 +2107,7 @@ call the method <code class="language-plaintext highlighter-rouge">doTest</code>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_new_cpd_language.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Adding PMD support for a new ANTLR grammar based language
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Adding PMD support for a new ANTLR grammar based language</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md">
|
||||
|
||||
|
||||
<div class="summary">How to add a new language to PMD using ANTLR grammar.</div>
|
||||
@ -1960,7 +1960,7 @@ is automatically available in the binary distribution (pmd-dist).</li>
|
||||
<ul>
|
||||
<li>ANTLR will generate the parser for you based on the grammar file. The grammar file needs to be placed in the
|
||||
folder <code class="language-plaintext highlighter-rouge">src/main/antlr4</code> in the appropriate sub package <code class="language-plaintext highlighter-rouge">ast</code> of the language. E.g. for swift, the grammar
|
||||
file is <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/antlr4/net/sourceforge/pmd/lang/swift/ast/Swift.g4">Swift.g4</a>
|
||||
file is <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/antlr4/net/sourceforge/pmd/lang/swift/ast/Swift.g4">Swift.g4</a>
|
||||
and is placed in the package <code class="language-plaintext highlighter-rouge">net.sourceforge.pmd.lang.swift.ast</code>.</li>
|
||||
<li>Configure the options “superClass” and “contextSuperClass”. These are the base classes for the generated
|
||||
classes.</li>
|
||||
@ -1970,29 +1970,29 @@ classes.</li>
|
||||
<ul>
|
||||
<li>The individual AST nodes are generated, but you need to define the common interface for them.</li>
|
||||
<li>You need to define the supertype interface for all nodes of the language. For that, we provide
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrNode.java"><code class="language-plaintext highlighter-rouge">AntlrNode</code></a>.</li>
|
||||
<li>See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftNode.java"><code class="language-plaintext highlighter-rouge">SwiftNode</code></a>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrNode.java"><code class="language-plaintext highlighter-rouge">AntlrNode</code></a>.</li>
|
||||
<li>See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftNode.java"><code class="language-plaintext highlighter-rouge">SwiftNode</code></a>
|
||||
as an example.</li>
|
||||
<li>Additionally, you need several base classes:
|
||||
<ul>
|
||||
<li>a language specific inner node - these nodes represent the production rules from the grammar.
|
||||
In Antlr, they are called “ParserRuleContext”. We call them “InnerNode”. Use the
|
||||
base class from pmd-core
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/BaseAntlrInnerNode.java"><code class="language-plaintext highlighter-rouge">BaseAntlrInnerNode</code></a>
|
||||
. And example is <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftInnerNode.java"><code class="language-plaintext highlighter-rouge">SwiftInnerNode</code></a>.
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/BaseAntlrInnerNode.java"><code class="language-plaintext highlighter-rouge">BaseAntlrInnerNode</code></a>
|
||||
. And example is <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftInnerNode.java"><code class="language-plaintext highlighter-rouge">SwiftInnerNode</code></a>.
|
||||
Note that this language specific inner node is package-private, as it is only the base class for the concrete
|
||||
nodes generated by ANLTR.</li>
|
||||
<li>a language specific root node - this provides the root of the AST and our parser will return
|
||||
subtypes of this node. The root node itself is a “InnerNode”.
|
||||
See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftRootNode.java"><code class="language-plaintext highlighter-rouge">SwiftRootNode</code></a>.
|
||||
See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftRootNode.java"><code class="language-plaintext highlighter-rouge">SwiftRootNode</code></a>.
|
||||
Note that this language specific root node is package-private, as it is only the base class for the concrete
|
||||
node generated by ANLTR.</li>
|
||||
<li>a language specific terminal node.
|
||||
See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftTerminalNode.java"><code class="language-plaintext highlighter-rouge">SwiftTerminalNode</code></a>.</li>
|
||||
See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftTerminalNode.java"><code class="language-plaintext highlighter-rouge">SwiftTerminalNode</code></a>.</li>
|
||||
<li>a language specific error node.
|
||||
See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftErrorNode.java"><code class="language-plaintext highlighter-rouge">SwiftErrorNode</code></a>.</li>
|
||||
See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftErrorNode.java"><code class="language-plaintext highlighter-rouge">SwiftErrorNode</code></a>.</li>
|
||||
<li>a language name dictionary. This is used to convert ANTLR node names to useful XPath node names.
|
||||
See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftNameDictionary.java">`SwiftNameDictionary’</a>.</li>
|
||||
See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftNameDictionary.java">`SwiftNameDictionary’</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Once these base classes exist, you need to change the ANTLR grammar to add additional members via <code class="language-plaintext highlighter-rouge">@parser::members</code>
|
||||
@ -2000,15 +2000,15 @@ See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/
|
||||
<li>Define a package private field <code class="language-plaintext highlighter-rouge">DICO</code> which creates a new instance of your language name dictionary using the
|
||||
vocabulary from the generated parser (<code class="language-plaintext highlighter-rouge">VOCABULARY</code>).</li>
|
||||
<li>Define two additional methods to help converting the ANTLR context objects into PMD AST nodes.
|
||||
The methods are abstract in <a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrGeneratedParserBase.java"><code class="language-plaintext highlighter-rouge">AntlrGeneratedParserBase</code></a>
|
||||
The methods are abstract in <a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrGeneratedParserBase.java"><code class="language-plaintext highlighter-rouge">AntlrGeneratedParserBase</code></a>
|
||||
and need to be implemented here for the concrete language: <code class="language-plaintext highlighter-rouge">createPmdTerminal()</code> and <code class="language-plaintext highlighter-rouge">createPmdError()</code>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>In order for the generated code to match and use our custom classes, we have a common ant script, that fiddles with
|
||||
the generated code. The ant script is <a href="https://github.com/pmd/pmd/blob/master/antlr4-wrapper.xml"><code class="language-plaintext highlighter-rouge">antlr4-wrapper.xml</code></a>
|
||||
the generated code. The ant script is <a href="https://github.com/pmd/pmd/blob/main/antlr4-wrapper.xml"><code class="language-plaintext highlighter-rouge">antlr4-wrapper.xml</code></a>
|
||||
and does not need to be adjusted - it has plenty of parameters that can be configured.
|
||||
The ant script is added in the language module’s <code class="language-plaintext highlighter-rouge">pom.xml</code> where the parameters are set (e.g. name of root name
|
||||
class). Have a look at Swift’s example: <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/pom.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/pom.xml</code></a>.</li>
|
||||
class). Have a look at Swift’s example: <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/pom.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/pom.xml</code></a>.</li>
|
||||
<li>You can add additional methods in your “InnerNode” (e.g. <code class="language-plaintext highlighter-rouge">SwiftInnerNode</code>) that are available on all nodes.
|
||||
But on most cases you won’t need to do anything.</li>
|
||||
</ul>
|
||||
@ -2021,22 +2021,22 @@ to the phase <code class="language-plaintext highlighter-rouge">generate-sources
|
||||
have the parser generated.</li>
|
||||
<li>The generated code will be placed under <code class="language-plaintext highlighter-rouge">target/generated-sources/antlr4</code> and will not be committed to
|
||||
source control.</li>
|
||||
<li>You should review <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/pom.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/pom.xml</code></a>.</li>
|
||||
<li>You should review <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/pom.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/pom.xml</code></a>.</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="5--create-a-tokenmanager">5. Create a TokenManager</h3>
|
||||
<ul>
|
||||
<li>This is needed to support CPD (copy paste detection)</li>
|
||||
<li>We provide a default implementation using <a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrTokenManager.java"><code class="language-plaintext highlighter-rouge">AntlrTokenManager</code></a>.</li>
|
||||
<li>We provide a default implementation using <a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrTokenManager.java"><code class="language-plaintext highlighter-rouge">AntlrTokenManager</code></a>.</li>
|
||||
<li>You must create your own “AntlrCpdLexer” such as we do with
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/cpd/SwiftCpdLexer.java"><code class="language-plaintext highlighter-rouge">SwiftCpdLexer</code></a>.</li>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/cpd/SwiftCpdLexer.java"><code class="language-plaintext highlighter-rouge">SwiftCpdLexer</code></a>.</li>
|
||||
<li>
|
||||
<p>If you wish to filter specific tokens (e.g. comments to support CPD suppression via “CPD-OFF” and “CPD-ON”)
|
||||
you can create your own implementation of
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/cpd/impl/AntlrTokenFilter.java"><code class="language-plaintext highlighter-rouge">AntlrTokenFilter</code></a>.
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/cpd/impl/AntlrTokenFilter.java"><code class="language-plaintext highlighter-rouge">AntlrTokenFilter</code></a>.
|
||||
You’ll need to override then the protected method <code class="language-plaintext highlighter-rouge">getTokenFilter(AntlrTokenManager)</code>
|
||||
and return your custom filter. See the CpdLexer for C# as an exmaple:
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/cpd/CsCpdLexer.java"><code class="language-plaintext highlighter-rouge">CsCpdLexer</code></a>.</p>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/cpd/CsCpdLexer.java"><code class="language-plaintext highlighter-rouge">CsCpdLexer</code></a>.</p>
|
||||
|
||||
<p>If you don’t need a custom token filter, you don’t need to override the method. It returns the default
|
||||
<code class="language-plaintext highlighter-rouge">AntlrTokenFilter</code> which doesn’t filter anything.</p>
|
||||
@ -2046,14 +2046,14 @@ and return your custom filter. See the CpdLexer for C# as an exmaple:
|
||||
<h3 id="6--create-a-pmd-parser-adapter">6. Create a PMD parser “adapter”</h3>
|
||||
<ul>
|
||||
<li>Create your own parser, that adapts the ANLTR interface to PMD’s parser interface.</li>
|
||||
<li>We provide a <a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrBaseParser.java"><code class="language-plaintext highlighter-rouge">AntlrBaseParser</code></a>
|
||||
<li>We provide a <a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/impl/antlr4/AntlrBaseParser.java"><code class="language-plaintext highlighter-rouge">AntlrBaseParser</code></a>
|
||||
implementation that you need to extend to create your own adapter as we do with
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java"><code class="language-plaintext highlighter-rouge">PmdSwiftParser</code></a>.</li>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java"><code class="language-plaintext highlighter-rouge">PmdSwiftParser</code></a>.</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="7--create-a-language-version-handler">7. Create a language version handler</h3>
|
||||
<ul>
|
||||
<li>Now you need to create your version handler, as we did with <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftHandler.java"><code class="language-plaintext highlighter-rouge">SwiftHandler</code></a>.</li>
|
||||
<li>Now you need to create your version handler, as we did with <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftHandler.java"><code class="language-plaintext highlighter-rouge">SwiftHandler</code></a>.</li>
|
||||
<li>This class is sort of a gateway between PMD and all parsing logic specific to your language.</li>
|
||||
<li>For a minimal implementation, it just needs to return a parser <em>(see step #6)</em>.</li>
|
||||
<li>It can be used to provide other features for your language like
|
||||
@ -2073,17 +2073,17 @@ provide the method name or class name, where the violation occurred.</li>
|
||||
<li>A parser visitor adapter is not needed anymore with PMD 7. The visitor interface now provides a default
|
||||
implementation.</li>
|
||||
<li>The visitor for ANTLR based AST is generated along the parser from the ANTLR grammar file. The
|
||||
base interface for a visitor is <a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java"><code class="language-plaintext highlighter-rouge">AstVisitor</code></a>.</li>
|
||||
base interface for a visitor is <a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java"><code class="language-plaintext highlighter-rouge">AstVisitor</code></a>.</li>
|
||||
<li>The generated visitor class for Swift is called <code class="language-plaintext highlighter-rouge">SwiftVisitor</code>.</li>
|
||||
<li>In order to help use this visitor later on, a base visitor class should be created.
|
||||
See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftVisitorBase.java"><code class="language-plaintext highlighter-rouge">SwiftVisitorBase</code></a>
|
||||
See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/SwiftVisitorBase.java"><code class="language-plaintext highlighter-rouge">SwiftVisitorBase</code></a>
|
||||
as an example.</li>
|
||||
</ul>
|
||||
|
||||
<h3 id="9-make-pmd-recognize-your-language">9. Make PMD recognize your language</h3>
|
||||
<ul>
|
||||
<li>Create your own subclass of <code class="language-plaintext highlighter-rouge">net.sourceforge.pmd.lang.impl.SimpleLanguageModuleBase</code>, see Swift as an example:
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java"><code class="language-plaintext highlighter-rouge">SwiftLanguageModule</code></a>.</li>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java"><code class="language-plaintext highlighter-rouge">SwiftLanguageModule</code></a>.</li>
|
||||
<li>Add for each version of your language a call to <code class="language-plaintext highlighter-rouge">addVersion</code> in your language module’s constructor.
|
||||
Use <code class="language-plaintext highlighter-rouge">addDefaultVersion</code> for defining the default version.</li>
|
||||
<li>You’ll need to refer the language version handler created in step #7.</li>
|
||||
@ -2095,9 +2095,9 @@ Add your fully qualified class name as a single line into it.</li>
|
||||
<ul>
|
||||
<li>You need to create your own abstract rule class in order to interface your language with PMD’s generic rule
|
||||
execution.</li>
|
||||
<li>See <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/AbstractSwiftRule.java"><code class="language-plaintext highlighter-rouge">AbstractSwiftRule</code></a> as an example.</li>
|
||||
<li>See <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/AbstractSwiftRule.java"><code class="language-plaintext highlighter-rouge">AbstractSwiftRule</code></a> as an example.</li>
|
||||
<li>The rule basically just extends
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractVisitorRule.java"><code class="language-plaintext highlighter-rouge">AbstractVisitorRule</code></a>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractVisitorRule.java"><code class="language-plaintext highlighter-rouge">AbstractVisitorRule</code></a>
|
||||
and only redefines the abstract <code class="language-plaintext highlighter-rouge">buildVisitor()</code> method to return our own type of visitor.
|
||||
In this case our <code class="language-plaintext highlighter-rouge">SwiftVisitor</code> is used.
|
||||
While there is no real functionality added, every language should have its own base class for rules.
|
||||
@ -2118,7 +2118,7 @@ may have different AST nodes.</li>
|
||||
<li>To add a visitor rule:
|
||||
<ul>
|
||||
<li>You need to extend the abstract rule you created on the previous step, you can use the swift
|
||||
rule <a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java">UnavailableFunctionRule</a>
|
||||
rule <a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java">UnavailableFunctionRule</a>
|
||||
as an example. Note, that all rule classes should be suffixed with <code class="language-plaintext highlighter-rouge">Rule</code> and should be placed
|
||||
in a package the corresponds to their category.</li>
|
||||
</ul>
|
||||
@ -2144,17 +2144,17 @@ resource filtering configuration in the language module’s <code class="languag
|
||||
<ul>
|
||||
<li>Each rule has its own test class: Create a test class for your rule extending <code class="language-plaintext highlighter-rouge">PmdRuleTst</code>
|
||||
<em>(see
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionTest.java"><code class="language-plaintext highlighter-rouge">UnavailableFunctionTest</code></a>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionTest.java"><code class="language-plaintext highlighter-rouge">UnavailableFunctionTest</code></a>
|
||||
for example)</em></li>
|
||||
<li>Create a category rule set for your language <em>(see
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/main/resources/category/swift/bestpractices.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/src/main/resources/bestpractices.xml</code></a>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/main/resources/category/swift/bestpractices.xml"><code class="language-plaintext highlighter-rouge">pmd-swift/src/main/resources/bestpractices.xml</code></a>
|
||||
for example)</em></li>
|
||||
<li>Place the test XML file with the test cases in the correct location</li>
|
||||
<li>When executing the test class
|
||||
<ul>
|
||||
<li>this triggers the unit test to read the corresponding XML file with the rule test data
|
||||
<em>(see
|
||||
<a href="https://github.com/pmd/pmd/blob/master/pmd-swift/src/test/resources/net/sourceforge/pmd/lang/swift/rule/bestpractices/xml/UnavailableFunction.xml"><code class="language-plaintext highlighter-rouge">UnavailableFunction.xml</code></a>
|
||||
<a href="https://github.com/pmd/pmd/blob/main/pmd-swift/src/test/resources/net/sourceforge/pmd/lang/swift/rule/bestpractices/xml/UnavailableFunction.xml"><code class="language-plaintext highlighter-rouge">UnavailableFunction.xml</code></a>
|
||||
for example)</em></li>
|
||||
<li>This test XML file contains sample pieces of code which should trigger a specified number of
|
||||
violations of this rule. The unit test will execute the rule on this piece of code, and verify
|
||||
@ -2228,7 +2228,7 @@ syntax tree) is not suitable to add methods such as <code class="language-plaint
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_antlr_based_language.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Adding PMD support for a new JavaCC grammar based language
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Adding PMD support for a new JavaCC grammar based language</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md">
|
||||
|
||||
|
||||
<div class="summary">How to add a new language to PMD using JavaCC grammar.</div>
|
||||
@ -2291,7 +2291,7 @@ see <a href="pmd_languages_java.html">Java-specific features and guidance</a>.</
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/adding_a_new_javacc_based_language.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Guidelines for standard rules
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Guidelines for standard rules</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md">
|
||||
|
||||
|
||||
<div class="summary">Guidelines for rules that are included in the standard distribution</div>
|
||||
@ -2026,7 +2026,7 @@ non-private”).</li>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/major_contributions/rule_guidelines.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Pmdtester
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/pmdtester.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/pmdtester.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Pmdtester</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/pmdtester.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/pmdtester.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1913,11 +1913,11 @@ Regression difference reports are commented back to the PR for the reviewer’s
|
||||
|
||||
<p><strong>Verifying your local changes and generate a diff-report locally</strong></p>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">pmdtester -r YOUR_LOCAL_PMD_GIT_REPO_ROOT_DIR -b master -p YOUR_DEVELOPMENT_BRANCH</code></p>
|
||||
<p><code class="language-plaintext highlighter-rouge">pmdtester -r YOUR_LOCAL_PMD_GIT_REPO_ROOT_DIR -b main -p YOUR_DEVELOPMENT_BRANCH</code></p>
|
||||
|
||||
<p>The regression difference report is placed in the <code class="language-plaintext highlighter-rouge">YOUR_WORKING_DIR/target/reports/diff</code> directory.</p>
|
||||
|
||||
<p>For more documentation on pmdtester, see <a href="https://github.com/pmd/pmd-regression-tester/blob/master/README.rdoc">README.rdoc</a></p>
|
||||
<p>For more documentation on pmdtester, see <a href="https://github.com/pmd/pmd-regression-tester/blob/main/README.rdoc">README.rdoc</a></p>
|
||||
|
||||
|
||||
<div class="tags">
|
||||
@ -1944,7 +1944,7 @@ Regression difference reports are commented back to the PR for the reviewer’s
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/pmdtester.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/pmdtester.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Roadmap
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/roadmap.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/roadmap.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Roadmap</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/roadmap.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/roadmap.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -2065,7 +2065,7 @@ This should be configurable on per Rule basis similar to TR and SymbolTable.</p>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/roadmap.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/roadmap.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Rule deprecation policy
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/rule_deprecation.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/rule_deprecation.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Rule deprecation policy</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/rule_deprecation.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/rule_deprecation.md">
|
||||
|
||||
|
||||
<div class="summary">Describes when and how rules are deprecated</div>
|
||||
@ -2034,7 +2034,7 @@ major release of PMD.</p>
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/rule_deprecation.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/rule_deprecation.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Writing documentation
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/writing_documentation.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/writing_documentation.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Writing documentation</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/writing_documentation.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/writing_documentation.md">
|
||||
|
||||
|
||||
<details id="inline-toc-details">
|
||||
@ -1929,7 +1929,7 @@ This makes it easy to view the documentation also offline.</p>
|
||||
|
||||
<p>The categories for a language <code class="language-plaintext highlighter-rouge">%lang%</code> are located in
|
||||
<code class="language-plaintext highlighter-rouge">pmd-%lang%/src/main/resources/category/%lang% </code>. So for Java the categories
|
||||
can be found under <a href="https://github.com/pmd/pmd/tree/master/pmd-java/src/main/resources/category/java">pmd-java/src/main/resources/category/java</a>.
|
||||
can be found under <a href="https://github.com/pmd/pmd/tree/main/pmd-java/src/main/resources/category/java">pmd-java/src/main/resources/category/java</a>.
|
||||
The XML category files in this directory are transformed during build into markdown pages
|
||||
describing the rules they contain. These pages are placed under <code class="language-plaintext highlighter-rouge">docs/</code> like the handwritten
|
||||
documentation, and are then rendered with Jekyll like the rest of them. The rule documentation
|
||||
@ -2022,7 +2022,7 @@ all formatting inside the delimiters, and allow to write code samples without
|
||||
|
||||
<p>For the javadoc tags, the standard PMD maven modules are already defined as namespaces, e.g. <code class="language-plaintext highlighter-rouge">core</code>, <code class="language-plaintext highlighter-rouge">java</code>, <code class="language-plaintext highlighter-rouge">apex</code>, ….</p>
|
||||
|
||||
<p>For the implementation of these tags, see the <a href="https://github.com/pmd/pmd/tree/master/docs/_plugins">_plugins</a> folder.</p>
|
||||
<p>For the implementation of these tags, see the <a href="https://github.com/pmd/pmd/tree/main/docs/_plugins">_plugins</a> folder.</p>
|
||||
|
||||
<h2 id="building">Building</h2>
|
||||
|
||||
@ -2181,7 +2181,7 @@ by specifying <code class="language-plaintext highlighter-rouge">-Dpmd.doc.check
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/devdocs/writing_documentation.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/devdocs/writing_documentation.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Apex support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/apex.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/apex.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Apex support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/apex.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/apex.md">
|
||||
|
||||
|
||||
<div class="summary">Apex-specific features and guidance</div>
|
||||
@ -1985,7 +1985,7 @@ and generate an AST. This library is however a binary-blob provided as part of t
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/apex.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/apex.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Coco support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/coco.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/coco.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Coco support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/coco.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/coco.md">
|
||||
|
||||
|
||||
<div class="summary">Coco features and guidance</div>
|
||||
@ -1960,7 +1960,7 @@ It is part of the Coco Platform from <a href="https://cocotec.io/">https://cocot
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/coco.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/coco.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Language configuration
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/language_properties.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/language_properties.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Language configuration</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/language_properties.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/language_properties.md">
|
||||
|
||||
|
||||
<div class="summary">Summary of language configuration options and properties</div>
|
||||
@ -2088,7 +2088,7 @@ that is conditionally compiled out. Set this property to empty to disable this.<
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/language_properties.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/language_properties.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» C/C++ support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cpp.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cpp.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">C/C++ support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cpp.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cpp.md">
|
||||
|
||||
|
||||
<div class="summary">C/C++ features and guidance</div>
|
||||
@ -1951,7 +1951,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cpp.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cpp.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» C# support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cs.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cs.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">C# support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cs.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cs.md">
|
||||
|
||||
|
||||
<div class="summary">C#-specific features and guidance</div>
|
||||
@ -1948,7 +1948,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/cs.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/cs.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Dart support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/dart.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/dart.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Dart support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/dart.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/dart.md">
|
||||
|
||||
|
||||
<div class="summary">Dart-specific features and guidance</div>
|
||||
@ -1952,7 +1952,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/dart.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/dart.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Fortran support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/fortran.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/fortran.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Fortran support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/fortran.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/fortran.md">
|
||||
|
||||
|
||||
<div class="summary">Fortran features and guidance</div>
|
||||
@ -1948,7 +1948,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/fortran.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/fortran.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Gherkin support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/gherkin.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/gherkin.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Gherkin support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/gherkin.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/gherkin.md">
|
||||
|
||||
|
||||
<div class="summary">Gherkin features and guidance</div>
|
||||
@ -1961,7 +1961,7 @@ languages, CPD currently supports only the English version of the Gherkin langua
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/gherkin.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/gherkin.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
@ -1560,7 +1560,7 @@
|
||||
|
||||
|
||||
|
||||
<li><a href="https://github.com/pmd/pmd/blob/master/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
<li><a href="https://github.com/pmd/pmd/blob/main/CONTRIBUTING.md" target="_blank">Contributing</a></li>
|
||||
|
||||
|
||||
|
||||
@ -1876,7 +1876,7 @@
|
||||
» Go support
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/go.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/go.md"
|
||||
class="float-right"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
@ -1893,7 +1893,7 @@
|
||||
<h1 class="post-title-main">Go support</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/go.md">
|
||||
<div class="post-content" data-github-edit-url="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/go.md">
|
||||
|
||||
|
||||
<div class="summary">Go features and guidance</div>
|
||||
@ -1952,7 +1952,7 @@
|
||||
github and create a PR:
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://github.com/pmd/pmd/blob/master/docs/pages/pmd/languages/go.md"
|
||||
href="https://github.com/pmd/pmd/blob/main/docs/pages/pmd/languages/go.md"
|
||||
role="button"
|
||||
><i class="fab fa-github fa-lg"></i> Edit on GitHub</a
|
||||
>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user