In some cases, code may include sequences of literals that represent lists or tables of constants, such as lookup tables. Large sequences of these (particularly parts with many zeroes) will be identified by CPD as duplicates, but in practice, these are not the types of duplicates that are considered interesting. This introduces a new option for CPD (--ignore-literal-sequences) that ignores these sequences of literals, in a very similar way to how using directives for C# can already be skipped as well. For now, this functionality is restricted to C#, but it could be added for other languages as well.
PMD
About
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex and Visualforce, Modelica, PLSQL, Apache Velocity, XML, XSL, Scala.
Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in C/C++, C#, Dart, Fortran, Go, Groovy, Java, JavaScript, JSP, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex, Scala, Swift, Visualforce and XML.
Support
- How do I? -- Ask a question on StackOverflow.
- I got this error, why? -- Ask a question on StackOverflow.
- I got this error and I'm sure it's a bug -- file an issue.
- I have an idea/request/question -- file an issue.
- I have a quick question -- ask on our Gitter chat.
- Where's your documentation? -- https://pmd.github.io/latest/
Source
Our latest source of PMD can be found on GitHub. Fork us!
The rule designer is developed over at pmd/pmd-designer. Please see its README for developer documentation.
Website
More information can be found on our Website.