Dependencies point downward only (acyclic). Platform modules carry no domain knowledge; domain
behavior is contributed through extension points.
platform-core no domain knowledge; depended on by all
└─ vfs-api
└─ project-model-api
├─ build-api
└─ language-api
deps-api → project-model-api
index-api → language-api
analysis-api → language-api, index-api
block-api → language-api
ide-ui (Compose Multiplatform UI)
ide-core (the engine → UI bridge) → { ide-ui, the implementations }
ide-desktop (JVM launcher) → ide-core
ide-android (Android launcher) → ide-core
| Module | Package(s) | Responsibility |
|---|
platform-core | dev.ide.platform | Extension registry, message bus, model read/write lock, activities/progress, disposer, content hashing, plugin ids. |
vfs-api | dev.ide.vfs | VirtualFile, VirtualFileSystem, file events, listeners. |
project-model-api | dev.ide.model, .graph | Workspace/Project/Module/SourceSet/ContentRoot, order entries + scopes, classpath snapshots, library/SDK tables, module types, variants, facets, transactions, the project/module graphs, file-icon SPI. |
build-api | dev.ide.build | BuildSystem SPI; the generic incremental task engine contracts (Task/TaskInputs/TaskOutputs/TaskGraph/TaskExecutor). |
language-api | dev.ide.lang, .dom, .incremental, .resolve, .completion | LanguageBackend SPI, source analyzer/compiler contracts, the backend-neutral DOM, incremental parsing, symbol/scope/type resolution, code completion. |
deps-api | dev.ide.deps | Dependency resolution SPI (Maven coordinates → jars/aars, conflict policy). |
index-api | dev.ide.index | Indexing SPI: index extensions, index service, shared value types. |
analysis-api | dev.ide.analysis | Diagnostics/analyzer/quick-fix SPI: one diagnostic model and one pipeline; compiler errors and analyzer findings merge into the same stream. |
block-api | dev.ide.block | Projectional (block) editor SPI: block tree, block mappings, block edits, the projection service. |
| Module | Responsibility |
|---|
platform-core (impl) | Extension registry, message bus, model read/write lock, activity/progress engine. |
project-model-impl | Model objects, modifiable-model transactions, module.toml load/save, crash-safe writes, the graph + classpath assembly. |
build-engine | The incremental task engine (fingerprints, persistent cache, bounded-parallel executor) and the native Java build system. |
index-impl | The indexing engine: disk-backed segments for static (SDK/library) indices, in-memory incremental data for source. |
analysis-impl | The analysis engine behind analysis-api (analyzers, the compiler as a diagnostic provider, profiles, suppression, debounce/cancellation). |
block-impl | The block projection engine and the Java block mapping. |
deps-impl | The dependency resolver implementation. |
| Module | Responsibility |
|---|
lang-jdt | Eclipse JDT/ecj backend (the default): error recovery, working-copy reconcile, completion, batch compile to .class; the bytecode members index. |
lang-xml | An Android-agnostic XML backend: an error-tolerant parser, neutral DOM, and context-aware completion driven by injected contributors. |
lang-kotlin | An editor-time Kotlin backend (standalone PSI parse → own symbols/inference/completion) plus Kotlin-to-bytecode codegen for the build. |
| Module | Responsibility |
|---|
android-support | The Android plugin: AndroidFacet, app/library module types, variants, and the native APK pipeline (resource merge, aapt2, R generation, D8 dexing, packaging, signing). Invokes SDK tools behind injected ports. |
android-sdk-metadata | A build-time generator that produces the bundled SDK metadata asset from attrs.xml + android.jar. |
| Module | Responsibility |
|---|
ide-ui | The reusable Compose Multiplatform UI (desktop + Android): theme, components, code editor with completion and inline diagnostics, file tree, block editor. Talks only to the IdeBackend port. |
ide-core | The shared engine → UI bridge: the IdeServices façade over the implementations, and IdeServicesBackend implementing IdeBackend. |
ide-desktop | The JVM Compose launcher. |
ide-android | The Android Compose launcher; supplies the on-device ports (dex run, APK install/launch). |