# jetbrains/intellij-plugins architecture

> Architecture diagram of the GitHub repository jetbrains/intellij-plugins, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jetbrains/intellij-plugins
- Repository: https://github.com/jetbrains/intellij-plugins

## Overview

This is a monorepo of independent open-source plugins distributed with IntelliJ-based IDEs, not one application with a shared runtime workflow. A user invokes an IDE feature—such as cloud-report highlighting, code generation, linting, or device access—and the relevant plugin handles it. The graph preserves the sampled Qodana flow and other major plugin capabilities visible in the tree and source index. Many subsystems are unsampled, so their internal connections are omitted rather than inferred.

Main entry points: [`qodana/core/src/org/jetbrains/qodana/highlight/QodanaHighlightedReportService.kt`](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/highlight/QodanaHighlightedReportService.kt) (Report highlighting), [`qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt`](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt) (Project linking), [`javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt`](https://github.com/jetbrains/intellij-plugins/blob/master/javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt) (ESLint service), [`gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java`](https://github.com/jetbrains/intellij-plugins/blob/master/gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java) (Gauge bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_qodana["Qodana reports"]
  node_report["Cloud report"]
  node_link["Project linking"]
  node_highlight["Report highlighting"]
  node_coverage["Coverage display"]
  node_oauth["Cloud authorization"]
end

subgraph group_angular["Angular tooling"]
  node_angularcli["CLI generation"]
  node_angularservice["Language service"]
end

subgraph group_developer["Developer tools"]
  node_gauge["Gauge bootstrap"]
  node_gaugecli["Gauge CLI"]
  node_prettier["Prettier formatting"]
  node_eslint["ESLint service"]
  node_eslintparser["ESLint results"]
  node_tslint["TSLint service"]
end

subgraph group_integrations["IDE integrations"]
  node_bower["Bower packages"]
  node_openrewrite["Recipe discovery"]
  node_terraform["Terraform completion"]
  node_serial["Serial connections"]
  node_platformio["PlatformIO support"]
  node_karma["Karma coverage"]
end

node_user(("IDE user"))

node_user -->|"links project"| node_link
node_link -->|"selects report"| node_highlight
node_user -.->|"authorizes"| node_oauth
node_user -.->|"views report"| node_highlight
node_highlight -->|"publishes state"| node_coverage
node_user -.->|"generates code"| node_angularcli
node_user -.->|"uses language tools"| node_angularservice
node_gauge -->|"starts process"| node_gaugecli
node_user -.->|"formats code"| node_prettier
node_user -.->|"checks code"| node_eslint
node_eslint -->|"parses results"| node_eslintparser
node_user -.->|"checks code"| node_tslint
node_user -.->|"manages packages"| node_bower
node_user -.->|"discovers recipes"| node_openrewrite
node_user -.->|"completes configuration"| node_terraform
node_user -.->|"connects device"| node_serial
node_user -.->|"manages project"| node_platformio
node_user -.->|"views coverage"| node_karma

click node_report "https://github.com/jetbrains/intellij-plugins/tree/master/qodana/core/src/org/jetbrains/qodana/cloud/project"
click node_link "https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt"
click node_highlight "https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/highlight/QodanaHighlightedReportService.kt"
click node_coverage "https://github.com/jetbrains/intellij-plugins/blob/master/qodana/coverage/src/org/jetbrains/qodana/staticAnalysis/inspections/coverage/CoverageListenerService.kt"
click node_oauth "https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/cloud/authorization/QodanaCloudOAuthService.kt"
click node_angularcli "https://github.com/jetbrains/intellij-plugins/tree/master/Angular/angular-backend/src-js/ngCli"
click node_angularservice "https://github.com/jetbrains/intellij-plugins/tree/master/Angular/angular-backend/src-js/angular-service/src"
click node_gauge "https://github.com/jetbrains/intellij-plugins/blob/master/gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java"
click node_gaugecli "https://github.com/jetbrains/intellij-plugins/tree/master/gauge/src/com/thoughtworks/gauge/core"
click node_prettier "https://github.com/jetbrains/intellij-plugins/tree/master/prettierJS/src/com/intellij/prettierjs"
click node_eslint "https://github.com/jetbrains/intellij-plugins/blob/master/javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt"
click node_eslintparser "https://github.com/jetbrains/intellij-plugins/tree/master/javascript/eslint/src/com/intellij/lang/javascript/linter/eslint"
click node_tslint "https://github.com/jetbrains/intellij-plugins/blob/master/tslint/src/com/intellij/lang/javascript/linter/tslint/service/TsLintLanguageService.kt"
click node_bower "https://github.com/jetbrains/intellij-plugins/blob/master/javascript/bower/src/com/intellij/javascript/bower/BowerPackagingService.java"
click node_openrewrite "https://github.com/jetbrains/intellij-plugins/blob/master/open-rewrite/src/com/intellij/openRewrite/recipe/OpenRewriteRecipeService.kt"
click node_terraform "https://github.com/jetbrains/intellij-plugins/blob/master/terraform/src/org/intellij/terraform/config/codeinsight/TfInsertHandlerService.kt"
click node_serial "https://github.com/jetbrains/intellij-plugins/blob/master/serial-monitor/src/main/java/com/intellij/plugins/serialmonitor/service/SerialPortService.kt"
click node_platformio "https://github.com/jetbrains/intellij-plugins/blob/master/platformio/src/com/jetbrains/cidr/cpp/embedded/platformio/PlatformioService.kt"
click node_karma "https://github.com/jetbrains/intellij-plugins/blob/master/js-karma/coverage/src/com/intellij/javascript/karma/coverage/KarmaCoverageEngine.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_report,node_link,node_highlight,node_coverage,node_oauth,node_user toneBlue
class node_angularcli,node_angularservice toneAmber
class node_gauge,node_gaugecli,node_prettier,node_eslint,node_eslintparser,node_tslint toneMint
class node_bower,node_openrewrite,node_terraform,node_serial,node_platformio,node_karma toneRose
```

## Components

### Qodana reports

- [Cloud report](https://github.com/jetbrains/intellij-plugins/tree/master/qodana/core/src/org/jetbrains/qodana/cloud/project): `qodana/core/src/org/jetbrains/qodana/cloud/project`
- [Project linking](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt): `qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt`
- [Report highlighting](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/highlight/QodanaHighlightedReportService.kt): `qodana/core/src/org/jetbrains/qodana/highlight/QodanaHighlightedReportService.kt`
- [Coverage display](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/coverage/src/org/jetbrains/qodana/staticAnalysis/inspections/coverage/CoverageListenerService.kt): `qodana/coverage/src/org/jetbrains/qodana/staticAnalysis/inspections/coverage/CoverageListenerService.kt`
- [Cloud authorization](https://github.com/jetbrains/intellij-plugins/blob/master/qodana/core/src/org/jetbrains/qodana/cloud/authorization/QodanaCloudOAuthService.kt): `qodana/core/src/org/jetbrains/qodana/cloud/authorization/QodanaCloudOAuthService.kt`

### Angular tooling

- [CLI generation](https://github.com/jetbrains/intellij-plugins/tree/master/Angular/angular-backend/src-js/ngCli): `Angular/angular-backend/src-js/ngCli`
- [Language service](https://github.com/jetbrains/intellij-plugins/tree/master/Angular/angular-backend/src-js/angular-service/src): `Angular/angular-backend/src-js/angular-service/src`

### Developer tools

- [Gauge bootstrap](https://github.com/jetbrains/intellij-plugins/blob/master/gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java): `gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java`
- [Gauge CLI](https://github.com/jetbrains/intellij-plugins/tree/master/gauge/src/com/thoughtworks/gauge/core): `gauge/src/com/thoughtworks/gauge/core`
- [Prettier formatting](https://github.com/jetbrains/intellij-plugins/tree/master/prettierJS/src/com/intellij/prettierjs): `prettierJS/src/com/intellij/prettierjs`
- [ESLint service](https://github.com/jetbrains/intellij-plugins/blob/master/javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt): `javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt`
- [ESLint results](https://github.com/jetbrains/intellij-plugins/tree/master/javascript/eslint/src/com/intellij/lang/javascript/linter/eslint): `javascript/eslint/src/com/intellij/lang/javascript/linter/eslint`
- [TSLint service](https://github.com/jetbrains/intellij-plugins/blob/master/tslint/src/com/intellij/lang/javascript/linter/tslint/service/TsLintLanguageService.kt): `tslint/src/com/intellij/lang/javascript/linter/tslint/service/TsLintLanguageService.kt`

### IDE integrations

- [Bower packages](https://github.com/jetbrains/intellij-plugins/blob/master/javascript/bower/src/com/intellij/javascript/bower/BowerPackagingService.java): `javascript/bower/src/com/intellij/javascript/bower/BowerPackagingService.java`
- [Recipe discovery](https://github.com/jetbrains/intellij-plugins/blob/master/open-rewrite/src/com/intellij/openRewrite/recipe/OpenRewriteRecipeService.kt): `open-rewrite/src/com/intellij/openRewrite/recipe/OpenRewriteRecipeService.kt`
- [Terraform completion](https://github.com/jetbrains/intellij-plugins/blob/master/terraform/src/org/intellij/terraform/config/codeinsight/TfInsertHandlerService.kt): `terraform/src/org/intellij/terraform/config/codeinsight/TfInsertHandlerService.kt`
- [Serial connections](https://github.com/jetbrains/intellij-plugins/blob/master/serial-monitor/src/main/java/com/intellij/plugins/serialmonitor/service/SerialPortService.kt): `serial-monitor/src/main/java/com/intellij/plugins/serialmonitor/service/SerialPortService.kt`
- [PlatformIO support](https://github.com/jetbrains/intellij-plugins/blob/master/platformio/src/com/jetbrains/cidr/cpp/embedded/platformio/PlatformioService.kt): `platformio/src/com/jetbrains/cidr/cpp/embedded/platformio/PlatformioService.kt`
- [Karma coverage](https://github.com/jetbrains/intellij-plugins/blob/master/js-karma/coverage/src/com/intellij/javascript/karma/coverage/KarmaCoverageEngine.java): `js-karma/coverage/src/com/intellij/javascript/karma/coverage/KarmaCoverageEngine.java`

### Other components

- **IDE user**

## Connections

- IDE user → Project linking: links project (evidence: `qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt`)
- Project linking → Report highlighting: selects report (evidence: `qodana/core/src/org/jetbrains/qodana/cloud/project/QodanaCloudProjectLinkService.kt`)
- IDE user → Cloud authorization: authorizes
- IDE user → Report highlighting: views report
- Report highlighting → Coverage display: publishes state (evidence: `qodana/coverage/src/org/jetbrains/qodana/staticAnalysis/inspections/coverage/CoverageListenerService.kt`)
- IDE user → CLI generation: generates code
- IDE user → Language service: uses language tools
- Gauge bootstrap → Gauge CLI: starts process (evidence: `gauge/src/com/thoughtworks/gauge/GaugeBootstrapService.java`)
- IDE user → Prettier formatting: formats code
- IDE user → ESLint service: checks code
- ESLint service → ESLint results: parses results (evidence: `javascript/eslint/src/com/intellij/lang/javascript/linter/eslint/service/ESLintBasedLanguageService.kt`)
- IDE user → TSLint service: checks code
- IDE user → Bower packages: manages packages
- IDE user → Recipe discovery: discovers recipes
- IDE user → Terraform completion: completes configuration
- IDE user → Serial connections: connects device
- IDE user → PlatformIO support: manages project
- IDE user → Karma coverage: views coverage
