MCPcopy Index your code
hub / github.com/pmd/pmd

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

Chat with this repo
repository ↗ · DeepWiki ↗ · release 6.21.0-with-designer ↗ · + Follow
14,658 symbols 52,223 edges 2,676 files 3,633 documented · 25% 7 cross-repo links updated todaypmd_releases/7.27.0-SNAPSHOT · 2026-06-29★ 5,445578 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
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

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

Ask about this repo answers extend the page