Skip to content

#199 Process Kotlin codebases - #201

Open
jimbethancourt wants to merge 1 commit into
mainfrom
#199-add-support-for-kotlin
Open

#199 Process Kotlin codebases#201
jimbethancourt wants to merge 1 commit into
mainfrom
#199-add-support-for-kotlin

Conversation

@jimbethancourt

Copy link
Copy Markdown
Collaborator

Adding support for Kotlin and mixed Java/Kotlin repositories

Implemented support for Kotlin using GLM-5.2 and Nemotron Ultra
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 168 files, which is 18 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: dc04ae7c-4d69-467a-8020-41274a8bbfb7

📥 Commits

Reviewing files that changed from the base of the PR and between 175a823 and 7c86418.

📒 Files selected for processing (168)
  • AGENTS.md
  • change-proneness-ranker/pom.xml
  • change-proneness-ranker/src/main/java/org/hjug/git/ChangePronenessRanker.java
  • change-proneness-ranker/src/main/java/org/hjug/git/GitLogReader.java
  • change-proneness-ranker/src/test/java/org/hjug/git/GitLogReaderGetRepoUrlTest.java
  • cli/pom.xml
  • cli/src/main/java/org/hjug/refactorfirst/ReportCommand.java
  • cli/src/main/java/org/hjug/refactorfirst/ReportType.java
  • codebase-graph-builder/pom.xml
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/CompositeGraphBuilder.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/DependencyCollector.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/GraphBuilderConfig.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/GraphDependencyCollector.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/graphbuilder/JavaSourceFileGraphBuilder.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/graphbuilder/KotlinSourceFileGraphBuilder.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/graphbuilder/SourceFileGraphBuilder.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/ClassMetrics.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/ComplexityCalculator.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/DisharmonyDetector.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/DisharmonyTypes.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/GraphMetricsCollector.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/KotlinMetricsCollectingVisitor.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/MethodMetrics.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/MetricsCollectingVisitor.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/MetricsCollector.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/MetricsVisitorLogic.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/metrics/MetricsVisitorState.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/AbstractDependencyVisitor.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/DependencyVisitorLogic.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/DependencyVisitorState.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/JavaVisitor.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/KotlinDependencyVisitor.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/SourcePathResolver.java
  • codebase-graph-builder/src/main/java/org/hjug/graphbuilder/visitor/UnattributedTypeFqnResolver.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/CompositeGraphBuilderJavaOnlyTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/CompositeGraphBuilderReconciliationTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/CompositeGraphBuilderTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/GraphBuilderConfigTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/GraphDependencyCollectorTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/JavaGraphBuilderTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/KotlinGraphBuilderTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/TypeParameterReferenceTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/graphbuilder/JavaSourceFileGraphBuilderKotlinDetectorGateTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/graphbuilder/JavaSourceFileGraphBuilderPrunesClassesNotInCodebaseTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/graphbuilder/KotlinSourceFileGraphBuilderPartialParseTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/ClassMetricsFinalizationImmutabilityTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/GraphMetricsCollectorTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/KotlinDisharmonyParityTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/KotlinDisharmonyTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/KotlinMetricsCollectionTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/KotlinPropertyMetricsTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/MetricsCollectionTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/MetricsVisitorLogicIdentityTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/SignificantDuplicationTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/BrainClassExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/BrainMethodExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/DispersedCouplingExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/GodClassExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/RecordMetricsExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/SignificantDuplicationCrossClassA.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/SignificantDuplicationCrossClassB.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/SignificantDuplicationIntraClass.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/metrics/testclasses/TraditionBreakerExample.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/DependencyVisitorLogicJavaKotlinParityTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/DependencyVisitorStateTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/JavaVisitorTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/KotlinAnonymousSourcePathMappingTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/KotlinSourcePathMappingTest.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/testclasses/anonymous/AnonymousOwner.java
  • codebase-graph-builder/src/test/java/org/hjug/graphbuilder/visitor/testclasses/anonymous/AnonymousTarget.java
  • codebase-graph-builder/src/test/resources/kotlinAnonymousSrcDirectory/com/ideacrest/parser/kotlin/anonymous/AnonymousObjects.kt
  • codebase-graph-builder/src/test/resources/kotlinCallableRefSrcDirectory/com/ideacrest/parser/callref/CallableRefTarget.kt
  • codebase-graph-builder/src/test/resources/kotlinCallableRefSrcDirectory/com/ideacrest/parser/callref/CallableRefUser.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/BaseServiceKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/BrainClassKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/DataClassKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/DispersedCouplingKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/FeatureEnvyKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/IntensiveCouplingKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/RefusedBequestKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller1Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller2Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller3Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller4Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller5Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller6Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller7Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunCaller8Kt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/ShotgunSurgeryKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/SignificantDuplicationCrossClassKtA.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/SignificantDuplicationCrossClassKtB.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/TraditionBreakerKt.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/CustomerService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/ExternalDataService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/InventoryService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/NotificationService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/OrderService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/PaymentService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/ProductService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonyParitySrcDirectory/com/ideacrest/parser/kotlin/disharmony/parity/external/ShippingService.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonySrcDirectory/com/ideacrest/parser/kotlin/disharmony/ExtensionHost.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonySrcDirectory/com/ideacrest/parser/kotlin/disharmony/Money.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonySrcDirectory/com/ideacrest/parser/kotlin/disharmony/PureData.kt
  • codebase-graph-builder/src/test/resources/kotlinDisharmonySrcDirectory/com/ideacrest/parser/kotlin/disharmony/Shape.kt
  • codebase-graph-builder/src/test/resources/kotlinMetricsSrcDirectory/com/ideacrest/parser/metrics/testclasses/GodClassKt.kt
  • codebase-graph-builder/src/test/resources/kotlinMultiClassSrcDirectory/com/example/app/GameSettings.kt
  • codebase-graph-builder/src/test/resources/kotlinMultiClassSrcDirectory/com/example/app/Settings.kt
  • codebase-graph-builder/src/test/resources/kotlinPropertySrcDirectory/com/ideacrest/parser/proptests/Properties.kt
  • codebase-graph-builder/src/test/resources/kotlinSourcePathSrcDirectory/com/ideacrest/parser/kotlin/sourcepath/SourcePathSampleKt.kt
  • codebase-graph-builder/src/test/resources/kotlinSrcDirectory/com/ideacrest/parser/testclasses/A.kt
  • codebase-graph-builder/src/test/resources/kotlinSrcDirectory/com/ideacrest/parser/testclasses/B.kt
  • codebase-graph-builder/src/test/resources/kotlinSrcDirectory/com/ideacrest/parser/testclasses/C.kt
  • codebase-graph-builder/src/test/resources/kotlinSrcDirectory/com/ideacrest/parser/testclasses/D.kt
  • codebase-graph-builder/src/test/resources/kotlinSrcDirectory/com/ideacrest/parser/testclasses/E.kt
  • codebase-graph-builder/src/test/resources/kotlinTypeParamSrcDirectory/com/ideacrest/parser/typeparams/GenericHolder.kt
  • codebase-graph-builder/src/test/resources/kotlinTypeParamSrcDirectory/com/ideacrest/parser/typeparams/MetaClassA.kt
  • codebase-graph-builder/src/test/resources/mixedSrcDirectory/com/ideacrest/parser/mixedclasses/JavaClass.java
  • codebase-graph-builder/src/test/resources/mixedSrcDirectory/com/ideacrest/parser/mixedclasses/KConsumer.kt
  • codebase-graph-builder/src/test/resources/mixedSrcDirectory/com/ideacrest/parser/mixedclasses/KotlinClass.kt
  • codebase-graph-builder/src/test/resources/mixedSrcDirectory/com/ideacrest/parser/mixedclasses/SharedTarget.java
  • codebase-graph-builder/src/test/resources/mixedSrcDirectoryCrossPackage/com/almasb/fxgl/app/GameSettings.kt
  • codebase-graph-builder/src/test/resources/mixedSrcDirectoryCrossPackage/com/ideacrest/parser/mixedclasses/JavaClass.java
  • codebase-graph-builder/src/test/resources/parity/java/com/example/parity/ParitySample.java
  • codebase-graph-builder/src/test/resources/parity/kotlin/com/example/parity/ParitySample.kt
  • cost-benefit-calculator/pom.xml
  • cost-benefit-calculator/src/main/java/org/hjug/cbc/CostBenefitCalculator.java
  • cost-benefit-calculator/src/main/java/org/hjug/cbc/CycleRanker.java
  • cost-benefit-calculator/src/test/java/org/hjug/cbc/CostBenefitCalculatorTest.java
  • cost-benefit-calculator/src/test/java/org/hjug/cbc/CycleRankerKotlinTest.java
  • cost-benefit-calculator/src/test/java/org/hjug/cbc/DisharmonyChurnRankingTest.java
  • cost-benefit-calculator/src/test/java/org/hjug/cbc/DisharmonyExtractionTest.java
  • coverage/pom.xml
  • effort-ranker/pom.xml
  • graph-algorithms/pom.xml
  • graph-algorithms/src/main/java/org/hjug/dsm/DSM.java
  • graph-algorithms/src/main/java/org/hjug/dsm/OptimalBackEdgeRemover.java
  • graph-algorithms/src/main/java/org/hjug/feedback/arc/approximate/FeedbackArcSetSolver.java
  • graph-algorithms/src/main/java/org/hjug/feedback/arc/pageRank/PageRankFAS.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/approximate/FeedbackVertexSetSolver.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/DirectedFeedbackVertexSetSolver.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/EnhancedParameterComputer.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/FeedbackVertexSetComputer.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/ModulatorComputer.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/ParameterComputer.java
  • graph-algorithms/src/main/java/org/hjug/feedback/vertex/kernelized/TreewidthComputer.java
  • graph-algorithms/src/test/java/org/hjug/dsm/CircularReferenceCheckerTests.java
  • graph-algorithms/src/test/java/org/hjug/feedback/arc/pageRank/PageRankFASExample.java
  • graph-algorithms/src/test/java/org/hjug/feedback/vertex/kernelized/ModulatorComputerTest.java
  • graph-algorithms/src/test/java/org/hjug/feedback/vertex/kernelized/ParameterComputerTest.java
  • graph-data-generator/pom.xml
  • plans/kotlin-implementation-plan-glm-5-2.md
  • pom.xml
  • refactor-first-gradle-plugin/pom.xml
  • refactor-first-maven-plugin/pom.xml
  • refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstHtmlReport.java
  • refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstMavenCsvReport.java
  • refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstMavenReport.java
  • refactor-first-maven-plugin/src/main/java/org/hjug/mavenreport/RefactorFirstSimpleHtmlReport.java
  • report/pom.xml
  • report/src/main/java/org/hjug/refactorfirst/report/HtmlReport.java
  • report/src/main/java/org/hjug/refactorfirst/report/ReportWriter.java
  • report/src/main/java/org/hjug/refactorfirst/report/SimpleHtmlReport.java
  • report/src/test/java/org/hjug/refactorfirst/report/DisharmonyRenderingTest.java
  • report/src/test/java/org/hjug/refactorfirst/report/HtmlReportKotlinTest.java
  • report/src/test/java/org/hjug/refactorfirst/report/HtmlReportTest.java
  • report/src/test/java/org/hjug/refactorfirst/report/KotlinDisharmonyEndToEndTest.java
  • report/src/test/java/org/hjug/refactorfirst/report/SimpleHtmlReportTest.java
  • test-resources/pom.xml

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant