[doc] Improve language docs

This commit is contained in:
Andreas Dangel
2023-09-05 19:53:21 +02:00
parent 81b1d7e32b
commit 039f5fbd85
18 changed files with 52 additions and 31 deletions

View File

@ -2,6 +2,7 @@
<summary>Language Info for {{include.name}}</summary>
<div class="card">
<ul class="list-group list-group-flush">
{% if include.since %}<li class="list-group-item">Since PMD {{include.since}}</li>{% endif %}
<li class="list-group-item">Implementation: {% jdoc include.implementation %}</li>
<li class="list-group-item">Id: {{include.id}}</li>
<li class="list-group-item">PMD: {% if include.supports_pmd %}✔️{% else %}❌{% endif %}</li>

View File

@ -7,7 +7,12 @@ tags: [languages, PmdCapableLanguage, CpdCapableLanguage]
summary: "Apex-specific features and guidance"
---
{% include language_info.html name='Apex' id='apex' implementation='apex::lang.apex.ApexLanguageModule' supports_pmd=true supports_cpd=true %}
> Apex is a strongly typed, object-oriented programming language that allows developers to execute flow and
> transaction control statements on the Salesforce Platform server, in conjunction with calls to the API.
More info: [Apex Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm)
{% include language_info.html name='Apex' id='apex' implementation='apex::lang.apex.ApexLanguageModule' supports_pmd=true supports_cpd=true since='5.5.0' %}
## Metrics framework
@ -16,10 +21,10 @@ together with {% jdoc core::lang.metrics.MetricsUtil %}.
## Multifile Analysis
See {% jdoc apex::lang.apex.multifile.ApexMultifileAnalysis %}
Uses [ApexLink](https://github.com/nawforce/apex-link), see also [Apexlink POC #2830](https://github.com/pmd/pmd/pull/2830).
Integration happens in {% jdoc apex::lang.apex.multifile.ApexMultifileAnalysis %}. It uses
[ApexLink](https://github.com/nawforce/apex-link). For detailed information, see also [Apexlink POC #2830](https://github.com/pmd/pmd/pull/2830).
Note: ApexLink new home: https://github.com/apex-dev-tools
{% include note.html content="ApexLink's new home: <https://github.com/apex-dev-tools>" %}
Used for rule {% rule apex/design/UnusedMethod %}
@ -29,7 +34,8 @@ See [Apex language properties](pmd_languages_configuration.html#apex-language-pr
## Parser
We use Jorje...
## Limitations
We use Jorje, the Apex parsers that is shipped within the Apex Language Server. This is part of
the [Salesforce Extensions for VS Code](https://github.com/forcedotcom/salesforcedx-vscode).
We take the binary from <https://github.com/forcedotcom/salesforcedx-vscode/tree/develop/packages/salesforcedx-vscode-apex/out>
and provide it as a maven dependency (see [pmd-apex-jorje](https://github.com/pmd/pmd/tree/master/pmd-apex-jorje)).

View File

@ -1,14 +1,15 @@
---
title: Coco
title: Coco support
permalink: pmd_languages_coco.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Coco features and guidance"
---
{% include language_info.html name='Coco' id='coco' implementation='coco::lang.coco.CocoLanguageModule' supports_cpd=true %}
Coco is a modern programming language designed specifically for building event-driven software.
It is part of the Coco Platform from <https://cocotec.io/>.
It is part of the Coco Platform from <https://cocotec.io/>.
{% include language_info.html name='Coco' id='coco' implementation='coco::lang.coco.CocoLanguageModule' supports_cpd=true since='7.0.0' %}
## Support in PMD
Starting from version 7.0.0, Coco support was added to CPD.

View File

@ -1,8 +1,9 @@
---
title: C/C++
title: C/C++ support
permalink: pmd_languages_cpp.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "C/C++ features and guidance"
---
{% include language_info.html name='C++' id='cpp' implementation='cpp::lang.cpp.CppLanguageModule' supports_cpd=true %}

View File

@ -1,8 +1,9 @@
---
title: C#
title: C# support
permalink: pmd_languages_cs.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "C# features and guidance"
---
{% include language_info.html name='C#' id='cs' implementation='cs::lang.cs.CsLanguageModule' supports_cpd=true %}

View File

@ -1,8 +1,9 @@
---
title: Dart
title: Dart support
permalink: pmd_languages_dart.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Dart features and guidance"
---
{% include language_info.html name='Dart' id='dart' implementation='dart::lang.dart.DartLanguageModule' supports_cpd=true %}
{% include language_info.html name='Dart' id='dart' implementation='dart::lang.dart.DartLanguageModule' supports_cpd=true since='6.14.0' %}

View File

@ -1,8 +1,9 @@
---
title: Fortran
title: Fortran support
permalink: pmd_languages_fortran.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Fortran features and guidance"
---
{% include language_info.html name='Fortran' id='fortran' implementation='fortran::lang.fortran.FortranLanguageModule' supports_cpd=true %}

View File

@ -1,16 +1,17 @@
---
title: Gherkin
title: Gherkin support
permalink: pmd_languages_gherkin.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Gherkin features and guidance"
---
{% include language_info.html name='Gherkin' id='gherkin' implementation='gherkin::lang.gherkin.GherkinLanguageModule' supports_cpd=true %}
The [Gherkin](https://cucumber.io/docs/gherkin/) language is used to define test cases for the
[Cucumber](https://cucumber.io/) testing tool for behavior-driven development.
The Gherkin syntax is designed to be non-technical, making it human-readable for a wide audience.
{% include language_info.html name='Gherkin' id='gherkin' implementation='gherkin::lang.gherkin.GherkinLanguageModule' supports_cpd=true since='6.48.0' %}
## Support in PMD
Starting from version 6.48.0, Gherkin support was added to CPD.

View File

@ -1,8 +1,11 @@
---
title: Go
title: Go support
permalink: pmd_languages_go.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Go features and guidance"
---
{% include language_info.html name='Go' id='go' implementation='go::lang.go.GoLanguageModule' supports_cpd=true %}
[Go](https://golang.org/) is a statically typed, compiled high-level programming language.
{% include language_info.html name='Go' id='go' implementation='go::lang.go.GoLanguageModule' supports_cpd=true since='5.2.0' %}

View File

@ -1,8 +1,13 @@
---
title: Groovy
title: Groovy support
permalink: pmd_languages_groovy.html
last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
summary: "Groovy features and guidance"
---
{% include language_info.html name='Groovy' id='groovy' implementation='groovy::lang.groovy.GroovyLanguageModule' supports_cpd=true %}
[Apache Groovy](https://groovy-lang.org/) is a powerful, optionally typed and dynamic language, with static-typing and
static compilation capabilities, for the Java platform aimed at improving developer productivity thanks to a concise,
familiar and easy to learn syntax.
{% include language_info.html name='Groovy' id='groovy' implementation='groovy::lang.groovy.GroovyLanguageModule' supports_cpd=true since='5.5.2' %}

View File

@ -7,7 +7,7 @@ summary: "JavaScript and TypeScript infos"
---
{% include language_info.html name='JavaScript' id='ecmascript' implementation='javascript::lang.ecmascript.EcmascriptLanguageModule' supports_pmd=true supports_cpd=true %}
{% include language_info.html name='TypeScript' id='ts' implementation='javascript::lang.typescript.TsLanguageModule' supports_cpd=true %}
{% include language_info.html name='TypeScript' id='ts' implementation='javascript::lang.typescript.TsLanguageModule' supports_cpd=true since='7.0.0' %}
**JavaScript** support is using [Rhino](https://github.com/mozilla/rhino) for parsing and supports CPD as well as

View File

@ -5,7 +5,7 @@ last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
---
{% include language_info.html name='Julia' id='julia' implementation='julia::lang.julia.JuliaLanguageModule' supports_cpd=true %}
{% include language_info.html name='Julia' id='julia' implementation='julia::lang.julia.JuliaLanguageModule' supports_cpd=true since='7.0.0' %}
The [Julia](https://julialang.org/) language is dynamically typed, like a scripting language,
and has good support for interactive use.

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
---
{% include language_info.html name='Matlab' id='matlab' implementation='matlab::lang.matlab.MatlabLanguageModule' supports_cpd=true %}
{% include language_info.html name='Matlab' id='matlab' implementation='matlab::lang.matlab.MatlabLanguageModule' supports_cpd=true since='5.3.0' %}

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
---
{% include language_info.html name='objectivec' id='objectivec' implementation='objectivec::lang.objectivec.ObjectiveCLanguageModule' supports_cpd=true %}
{% include language_info.html name='objectivec' id='objectivec' implementation='objectivec::lang.objectivec.ObjectiveCLanguageModule' supports_cpd=true since='5.3.0' %}

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
---
{% include language_info.html name='Perl' id='perl' implementation='perl::lang.perl.PerlLanguageModule' supports_cpd=true %}
{% include language_info.html name='Perl' id='perl' implementation='perl::lang.perl.PerlLanguageModule' supports_cpd=true since='5.5.0' %}

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, CpdCapableLanguage]
---
{% include language_info.html name='Python' id='python' implementation='python::lang.python.PythonLanguageModule' supports_cpd=true %}
{% include language_info.html name='Python' id='python' implementation='python::lang.python.PythonLanguageModule' supports_cpd=true since='5.3.0' %}

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, PmdCapableLanguage, CpdCapableLanguage]
---
{% include language_info.html name='Scala' id='scala' implementation='scala::lang.scala.ScalaLanguageModule' supports_pmd=true supports_cpd=true %}
{% include language_info.html name='Scala' id='scala' implementation='scala::lang.scala.ScalaLanguageModule' supports_pmd=true supports_cpd=true since='5.3.0' %}

View File

@ -5,4 +5,4 @@ last_updated: September 2023 (7.0.0)
tags: [languages, PmdCapableLanguage, CpdCapableLanguage]
---
{% include language_info.html name='Swift' id='swift' implementation='swift::lang.swift.SwiftLanguageModule' supports_pmd=true supports_cpd=true %}
{% include language_info.html name='Swift' id='swift' implementation='swift::lang.swift.SwiftLanguageModule' supports_pmd=true supports_cpd=true since='5.3.7' %}