Skip to content
CAI
Software that uses CAICheck a score

JetBrains/intellij-scala

57.8

Adequate · 29 July 2026

613k

lines of production code

Scala

with Java

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

How this codebase got here

Score

  • CAI 57 → 58 (+1.2)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 100 → 100 (-0.1)
  • Maturity 51 → 55 (+4.5)
  • Readiness 74 → 74 (+0.0)
  • Security 57 → 57 (+0.0)
  • Accessibility 51 → 51 (+0.0)

Resolved (40)

  • Change coupling: ExpressionTransformation.scala ↔ SpecialSyntheticMethodsTransformation.scala (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/dfa/controlFlow/transform/ExpressionTransformation.scala)
  • Change coupling: InvocationTransformation.scala ↔ SpecialSyntheticMethodsTransformation.scala (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/dfa/controlFlow/transform/InvocationTransformation.scala)
  • Change coupling: Sbt.scala ↔ Nodes.scala (sbt/sbt-api/src/org/jetbrains/sbt/Sbt.scala)
  • Change coupling: Sbt.scala ↔ SbtNestedModuleDataService.scala (sbt/sbt-api/src/org/jetbrains/sbt/Sbt.scala)
  • Change coupling: Sbt.scala ↔ SbtNotificationListener.scala (sbt/sbt-api/src/org/jetbrains/sbt/Sbt.scala)
  • Dependency hygiene not measured — no supported dependency manifest was read
  • Duplicated block (10 lines × 2) (scala/test-integration/scalatest-finders/src/main/java/org/scalatest/finders/FunSpecFinder.java)
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier.java)
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier.java)
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier.java)
  • Duplicated block (10–24 lines × 2) (sbt/sbt-project-highlighting-tests/testdata/projectsForHighlightingTests/local/akka-samples/src/main/java/sample/java/persistence/PersistentActorFailureExample.java)
  • Duplicated block (12 lines × 20) (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/formatting/settings/ImportsPanel.java)
  • Duplicated block (12 lines × 22) (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/formatting/settings/ImportsPanel.java)
  • Duplicated block (16 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/scalaTest/ScalaTestRunnerArgs.java)
  • Duplicated block (5 lines × 2) (scala/compiler-integration/src/org/jetbrains/plugins/scala/compiler/references/settings/CompilerIndicesSettingsForm.java)
  • Duplicated block (5 lines × 2) (scala/repl/src/org/jetbrains/plugins/scala/console/configuration/ScalaConsoleRunConfigurationForm.java)
  • Duplicated block (6–7 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/scalaTest/ScalaTestReporter.java)
  • Duplicated block (8 lines × 27) (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/formatting/settings/ImportsPanel.java)
  • Duplicated block (8 lines × 3) (scala/test-integration/scalatest-finders/src/main/java/org/scalatest/finders/FreeSpecFinder.java)
  • Duplicated block (8–9 lines × 2) (sbt/sbt-project-highlighting-tests/testdata/projectsForHighlightingTests/local/akka-samples/src/main/java/sample/java/remote/calculator/CreationApplication.java)
  • …and 20 more

New (44)

  • Boundary-crossing change coupling: SbtUtil.scala ↔ ScalaDirectoryCompletionContributorBase.scala (sbt/sbt-impl/src/org/jetbrains/sbt/SbtUtil.scala)
  • Boundary-crossing change coupling: SbtViewContributor.scala ↔ ScalaDirectoryCompletionContributorBase.scala (sbt/sbt-impl/src/org/jetbrains/sbt/project/SbtViewContributor.scala)
  • Boundary-crossing change coupling: dataObjects.scala ↔ ScalaAbstractProjectDataService.scala (sbt/sbt-impl/src/org/jetbrains/sbt/project/data/dataObjects.scala)
  • Change coupling: IdeaIncrementalBuilder.scala ↔ SbtBuilder.scala (scala/compiler-jps/src/org/jetbrains/jps/incremental/scala/IdeaIncrementalBuilder.scala)
  • Change coupling: SbtProgramRunnerBase.scala ↔ SbtShellCommunication.scala (sbt/sbt-impl/src/org/jetbrains/sbt/runner/SbtProgramRunnerBase.scala)
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners-spec2_2x/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier_spec2x.java)
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners-spec2_2x/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier_spec2x.java)
  • Duplicated block (10 lines × 2) (scala/test-integration/test-runners-spec2_2x/src/org/jetbrains/plugins/scala/testingSupport/specs2/JavaSpecs2Notifier_spec2x.java)
  • Duplicated block (11 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/scalaTest/ScalaTestRunnerArgs.java)
  • Duplicated block (12 lines × 20) (sbt/sbt-impl/src/org/jetbrains/sbt/project/module/SbtModuleSettingsForm.java)
  • Duplicated block (12 lines × 22) (sbt/sbt-impl/src/org/jetbrains/sbt/runner/SbtRunConfigurationForm.java)
  • Duplicated block (16 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/specs2/Spec2RunnerArgs.java)
  • Duplicated block (5 lines × 2) (sbt/sbt-impl/src/org/jetbrains/sbt/project/module/SbtModuleSettingsForm.java)
  • Duplicated block (5 lines × 2) (scala/debugger/src/org/jetbrains/plugins/scala/debugger/filters/ScalaDebuggerSettingsConfigurable.java)
  • Duplicated block (6 lines × 2) (scala/test-integration/test-runners/src/org/jetbrains/plugins/scala/testingSupport/scalaTest/ScalaTestReporter.java)
  • Duplicated block (8 lines × 27) (sbt/sbt-impl/src/org/jetbrains/sbt/project/module/SbtModuleSettingsForm.java)
  • Duplicated block (8 lines × 3) (scala/scala-impl/src/org/jetbrains/plugins/scala/lang/lexer/ScalaLexer.java)
  • Duplicated block (9 lines × 2) (sbt/sbt-project-highlighting-tests/testdata/projectsForHighlightingTests/local/akka-samples/src/main/java/sample/java/remote/calculator/CreationApplication.java)
  • Further orphaned files (smaller)
  • …and 24 more

Changes since last survey

  • 63 commits — 41 feature/other, 22 fixes

By area

  • scala/scala-impl — 42 commits
  • (repo) — 5 commits
  • sbt/sbt-shell-runtime-tests — 4 commits
  • scala/structure-view — 3 commits
  • project/dependencies.scala — 2 commits
  • sbt/sbt-impl — 2 commits
  • (root) — 1 commit
  • pluginXml/resources — 1 commit
  • project/TeamCityCommunityUtil.scala — 1 commit
  • scala-cli/test — 1 commit
  • scala/compiler-test-utils — 1 commit

Notable commits

  • fix: Fix compilation after intellijVersion update to 262.9437.16
  • fix: [build] Update the since-build field in plugin.xml after the intellijVersion update to 262.9437.16 #SCL-25719 fixed
  • fix: [cleanup] fix ScalaDoc warnings in ImportUsed
  • fix: [color scheme, highlighting] add configurable first-clause case class field colors #SCL-386240 fixed
  • fix: [editor] add regression tests for type-alias inheritance gutter marker #SCL-10649 fixed
  • fix: [editor] make Java overriding aware of Scala specialisations in generics #SCL-7463 fixed
  • fix: [enums] model Java-compatible Scala enum constants #SCL-20012 fixed
  • fix: [highlighting] apply Scala colon color scheme in editor #SCL-22117 fixed
  • fix: [java interop] cover Java resolution from library TASTy #SCL-20975 fixed
  • fix: [java interop] cover inherited class companion forwarders #SCL-20875 fixed
  • fix: [java interop] expose synthetic Scala interfaces to Java hierarchy traversal #SCL-25708 fixed
  • fix: [java interop] model inherited static forwarder types #SCL-25042 fixed
  • fix: [light psi] normalize Java annotation conversion #SCL-25723 fixed
  • fix: [light psi] normalize backticked annotation attributes #SCL-25723 fixed
  • fix: [optimize imports] do not remove potentially used imports with unresolved references #SCL-21808 fixed
  • fix: [overriders search, gutter] support exported members in navigation #SCL-25367 fixed
  • fix: [overriders search] include self-type overrides in Go to Implementations #SCL-25367 fixed
  • fix: [project wizard] Fall back to hardcoded Scala/sbt versions when the version download fails with a non-OK HTTP status #SCL-25707 fixed
  • fix: [sbt shell] introduce a new Starting shell state representing the time after the shell has started but before it is ready #SCL-25667 fixed
  • fix: [scaladoc] handle strikesthrough with only one tilde #SCL-25712 fixed
  • …and 43 more

Architecture

  • Unchanged — 0 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

JetBrains/intellij-scala was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 29 July 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 8c39730725e61c3d6916475c93520c756b7dd1b7 — the exact code this score is about.
  • Scored under rubric-2026.08.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer latest.