MCPcopy
hub / github.com/pmd/pmd

github.com/pmd/pmd @6.21.0-with-designer sqlite

repository ↗ · DeepWiki ↗ · release 6.21.0-with-designer ↗
14,658 symbols 52,223 edges 2,676 files 3,633 documented · 25%
README

PMD

Join the chat at https://gitter.im/pmd/pmd Build Status Maven Central Coverage Status Codacy Badge

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 and Visualforce.

Source and Documentation

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.

News and Website

More information can be found on our Website and on SourceForge.

Extension points exported contracts — how you extend this code

ScalaParserVisitor (Interface)
A Visitor Pattern Interface for the Scala AST. @param The type of the data input to each visit method @p [322 implementers]
pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitor.java
OracleObject (Interface)
All nodes that represent an Oracle object. [10 implementers]
pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/ast/OracleObject.java
ThreadSafeReportListener (Interface)
Marker interface for report listeners that, being thread-safe, need not extra synchronization. Thread-safety is require [7 …
pmd-core/src/main/java/net/sourceforge/pmd/ThreadSafeReportListener.java
XmlNode (Interface)
This interface represents all XML AST nodes. They are essentially thin wrappers around the underlying DOM nodes. [11 implementers]
pmd-xml/src/main/java/net/sourceforge/pmd/lang/xml/ast/XmlNode.java
CloneableInterfaceOverride (Interface)
@author Clément Fournier @since 6.4.0 [9 implementers]
pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/bestpractices/missingoverride/CloneableInterfaceOverride.java
ApexQualifiableNode (Interface)
@author Clément Fournier [8 implementers]
pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexQualifiableNode.java
ModelicaDeclaration (Interface)
Some Modelica entity that is explicitly declared with some name inside some lexical scope. [4 implementers]
pmd-modelica/src/main/java/net/sourceforge/pmd/lang/modelica/resolver/ModelicaDeclaration.java
DestructuringNode (Interface)
(no doc) [6 implementers]
pmd-javascript/src/main/java/net/sourceforge/pmd/lang/ecmascript/ast/DestructuringNode.java

Core symbols most depended-on inside this repo

add
called by 1053
pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/RuleChainVisitor.java
get
called by 954
pmd-java/src/test/java/net/sourceforge/pmd/typeresolution/testdata/LocalGenericClass.java
size
called by 803
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/ImmutableList.java
visit
called by 761
pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/bestpractices/missingoverride/GenericInterfaceWithOverloads.java
get
called by 701
pmd-core/src/main/java/net/sourceforge/pmd/properties/PropertyBuilder.java
getChild
called by 600
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaNode.java
getImage
called by 505
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnyTypeDeclaration.java
getType
called by 494
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/TypeNode.java

Shape

Method 11,557
Class 2,766
Interface 160
Function 106
Enum 67
Struct 2

Languages

Java99%
TypeScript1%
Go1%
Python1%

Modules by API surface

pmd-core/src/test/java/net/sourceforge/pmd/stat/StatisticalRuleTest.java91 symbols
pmd-core/src/main/java/net/sourceforge/pmd/util/designer/Designer.java82 symbols
pmd-core/src/main/java/net/sourceforge/pmd/cpd/GUI.java76 symbols
pmd-java/src/test/java/net/sourceforge/pmd/typeresolution/ClassTypeResolverTest.java74 symbols
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/ImmutableList.java68 symbols
pmd-core/src/test/java/net/sourceforge/pmd/RuleSetFactoryTest.java65 symbols
pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java62 symbols
pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractDelegateRule.java59 symbols
pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/ConstructorCallsOverridableMethodRule.java57 symbols
pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractRule.java56 symbols
pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDConfiguration.java56 symbols
pmd-core/src/main/java/net/sourceforge/pmd/dcd/graph/UsageGraphBuilder.java50 symbols

Dependencies from manifests, versioned

${project.groupId}:pmd-apex-jorje
aopalliance:aopalliance1.0 · 1×
cglib:cglib3.2.0 · 1×
ch.qos.logback:logback-classic1.1.7 · 1×
ch.qos.logback:logback-core1.1.7 · 1×
com.beust:jcommander1.72 · 1×
com.github.oowekyala.treeutils:tree-matchers2.0.1 · 1×
com.github.stefanbirkner:system-rules1.19.0 · 1×
com.google.code.findbugs:jsr3053.0.2 · 1×
com.google.errorprone:error_prone_annotations2.1.3 · 1×

For agents

$ claude mcp add pmd \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact