[plsql] Document PMD Exclusions
This commit is contained in:
@ -4641,36 +4641,8 @@ Still, ~ 15% of perfectly valid DDL scripts could not be parsed by PMD.
|
||||
|
||||
Nevertheless it should be best practice to call PMD for _every_ DDL script.
|
||||
|
||||
Thus, we introduce the following workaround to cope with the situation.
|
||||
We introduce two special comments PMD-EXCLUDE-BEGIN and PMD-EXCLUDE-END
|
||||
which cause PMD to treat the source inbetween these comments more or less
|
||||
like a multi-line comment, or in other words, just not try to parse them.
|
||||
|
||||
It is good practice to include a reason for excluding inside the
|
||||
-- PMD-EXCUDE-BEGIN comment.
|
||||
|
||||
The PMD-EXCLUDE-BEGIN and PMD-EXLUDE-END comment lines must not contain
|
||||
other statements, e.g. do_xy(); -- PMD-EXCLUDE-BEGIN is invalid.
|
||||
|
||||
Example:
|
||||
|
||||
begin
|
||||
do_something();
|
||||
-- PMD-EXCLUDE-BEGIN: PMD does not like dbms_lob.trim (clash with TrimExpression)
|
||||
dbms_lob.trim(the_blob, 1000);
|
||||
-- PMD-EXCLUDE-END
|
||||
do_something_else();
|
||||
end;
|
||||
|
||||
The existence of exclusions can be detected with the attributes
|
||||
excludedRangesCount and excludedLinesCount of the top-lvel ASTInput node.
|
||||
If nothing is excluded, both values are 0 (zero).
|
||||
Otherwise, excludedRangesCount contains the number of excluded line-ranges
|
||||
and excludedRangesCount is the total number of excluded lines.
|
||||
A future version of PMD might pass the line ecluded line ranges,
|
||||
source fragments and the corresponding reason comments
|
||||
as child nodes of the top-level ASTInput node.
|
||||
See the commented code in Input().
|
||||
See /docs/pages/languages/plsql.md for further explanations on how
|
||||
to use PMD-EXCLUDE-BEGIN and PMD-EXCLUDE-END.
|
||||
*/
|
||||
|
||||
/* COMMENTS */
|
||||
|
Reference in New Issue
Block a user