Skip to main content

Module plugins

Module plugins 

Source

Structs§

ApiSurfaceAnalyzer
Analyze the ratio of exported (public) API surface.
BrainMethodAnalyzer
Detect Brain Methods using the detection strategy from [1]:
CognitiveComplexityAnalyzer
Detect functions with high cognitive complexity.
CommentsAnalyzer
Detect functions where comment lines exceed a threshold ratio.
ComplexityAnalyzer
Configurable thresholds for cyclomatic complexity.
CouplingAnalyzer
Detect high coupling via excessive imports.
DataClassAnalyzer
Detect classes that only have fields and accessor methods (no real behavior).
DataClumpsAnalyzer
Detect groups of parameters that repeatedly appear together across functions.
DeadCodeAnalyzer
Detect non-exported functions/classes that may be dead code. Note: single-file heuristic — flags unexported items as potential dead code.
DesignPatternAdvisor
Suggest design patterns based on AST structural signals.
DivergentChangeAnalyzer
Detect files changed for many different reasons (divergent change). Uses git log to count distinct change “clusters” by commit message keywords.
DuplicateCodeAnalyzer
Detect functions with identical AST structure (duplicate code).
ErrorHandlingAnalyzer
Detect error handling smells:
FeatureEnvyAnalyzer
Detect methods that reference external objects more than their own.
GodClassAnalyzer
Detect God Classes using the detection strategy from [1]:
HardcodedSecretAnalyzer
HubLikeDependencyAnalyzer
Detect Hub-like modules with excessive fan-out (too many imports).
InappropriateIntimacyAnalyzer
Detect bidirectional imports between files (inappropriate intimacy). Requires multi-file context: accumulates import data across files.
LayerViolationAnalyzer
Detect imports that violate configured layer boundaries. Layers are defined as path prefixes with a numeric order. Lower layers must not import from higher layers.
LazyClassAnalyzer
Detect classes with very few methods and lines (nearly empty wrappers).
LengthAnalyzer
Configurable thresholds for length checks.
LongParameterListAnalyzer
Detect functions with too many parameters.
MessageChainAnalyzer
Detect deep method chain calls (e.g. a.b().c().d()).
MiddleManAnalyzer
Detect classes where most methods only delegate to another object.
NamingAnalyzer
Check naming conventions for functions and classes.
PrimitiveObsessionAnalyzer
Detect functions where most parameters are primitive types.
RefusedBequestAnalyzer
Detect classes that inherit but override most parent methods (refused bequest).
ShotgunSurgeryAnalyzer
Detect files that always change together (shotgun surgery). Uses git log to find co-change patterns.
SpeculativeGeneralityAnalyzer
Detect interfaces/traits with only one implementation (over-abstraction).
SwitchStatementAnalyzer
Detect functions with excessive switch/match arms.
TemporaryFieldAnalyzer
Detect fields that are only used in a small fraction of methods.
TodoTrackerAnalyzer
Detect leftover task comments (todo/fixme/hack/xxx) in source code.
UnsafeApiAnalyzer
Detect usage of potentially dangerous functions and constructs.