Repository navigation
Expand file tree
/
Copy pathsettings.gradle.kts
More file actions
129 lines (122 loc) · 7.82 KB
/
Copy pathsettings.gradle.kts
File metadata and controls
129 lines (122 loc) · 7.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
rootProject.name = "codeassist"
pluginManagement {
// build-logic hosts plugins that depend on AGP (the `dev.ide.kotlinc-art` Kotlin-compiler-on-ART
// instrumentation) — they must share AGP's classloader, which buildSrc can't provide.
includeBuild("build-logic")
repositories {
gradlePluginPortal()
mavenCentral()
google()
}
}
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}
dependencyResolutionManagement {
// Modules must not declare their own repositories; all resolution flows through here.
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
google() // Compose Multiplatform / AndroidX artifacts
// :kotlin-compiler-deps only: the unshaded `-for-ide` compiler and the un-relocated IntelliJ platform
// it needs. Not on Maven Central; JetBrains-only repos. Scoped so normal resolution never consults them.
maven("https://redirector.kotlinlang.org/maven/kotlin-ide-plugin-dependencies") {
content { includeGroup("org.jetbrains.kotlin") }
}
maven("https://packages.jetbrains.team/maven/p/ij/intellij-dependencies") {
content {
includeGroupByRegex("org\\.jetbrains\\.intellij.*")
includeGroup("org.jetbrains.kotlin")
includeModule("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") // JB coroutines fork (…-intellij-N)
}
}
maven("https://cache-redirector.jetbrains.com/intellij-repository/releases") {
content {
includeGroupByRegex("com\\.jetbrains\\.intellij.*")
includeModule("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") // JB coroutines fork
}
}
// AdMob mediation (:ide-android only). The Google-Maven adapter artifacts (com.google.ads.mediation:*)
// pull each network's underlying SDK, and Pangle/Mintegral host theirs in their OWN Maven repos (not on
// Maven Central or Google Maven — per Google's mediation setup docs). Scoped by group so normal
// resolution never consults them. (Meta's SDK IS on Maven Central, so it needs no extra repo.)
maven("https://artifact.bytedance.com/repository/pangle") {
content { includeGroupByRegex("com\\.pangle\\..*") }
}
maven("https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea") {
content { includeGroupByRegex("com\\.mbridge\\..*") }
}
}
}
// Dependency direction points downward only (acyclic) — see README.md / docs.
// platform-core <- vfs-api <- project-model-api <- { build-api, language-api }
// project-model-api <- deps-api
// language-api <- { index-api, analysis-api } ; index-api <- analysis-api (diagnostics/analyzers/fixes)
// language-api <- block-api ; block-api <- block-impl (projectional/block editor)
// ide-ui (Compose Multiplatform UI) <- { ide-desktop (JVM launcher), ide-android (Android launcher) }
// The pure-Kotlin/JVM framework — builds and tests with no Android SDK or Compose toolchain.
include(
":platform-core",
":vfs-api",
":project-model-api",
":project-model-impl",
":build-api",
":build-engine",
":android-support",
":android-sdk-metadata", // build-time generator: SDK attrs.xml + android.jar → bundled metadata asset
":applog-runtime", // tiny Java runtime injected into DEBUG apps: a ContentProvider that forwards the app's logs to the IDE
":language-api",
":index-api",
":index-impl",
":analysis-api",
":analysis-impl",
":lang-jdt",
":lang-java", // IntelliJ-PSI Java LanguageBackend: IntelliJ Java parser + native resolution/inference (replaces lang-jdt in the editor)
":lang-xml",
":lang-kotlin-index", // pure, compiler-free Kotlin symbol/index layer shared by the Kotlin editor backend
":kotlin-compiler-deps", // the ONE unshaded Kotlin compiler + IntelliJ platform dependency set (no embeddable)
":intellij-psi-host", // the ONE shared IntelliJ platform env both lang-kotlin + lang-xml parse against
":lang-kotlin", // editor-only Kotlin LanguageBackend (PSI parse + our own symbols/inference/completion)
":lang-ksp", // KSP2 source generation: KspSourceGenerator (SourceGenerator SPI) runs KotlinSymbolProcessing over a module → generated sources
":decompiler", // navigate-into-library: read a classpath class → attached source, else decompile (Vineflower for Java, @Metadata stub for Kotlin)
":jvm-build", // JVM-language build system: JavaBuildSystem/JavaPlugin compose lang-jdt+lang-kotlin compile tasks over build-engine
":interp-core", // on-device Kotlin interpreter: tree-walks lang-kotlin's ResolvedTree (Compose interpreter, step 3)
":jvm-interp", // PoC: standalone .class bytecode-interpreting VM + Android/native bridge seam (Play dynamic-code compliance spike)
":deps-api",
":deps-impl",
":vcs-api", // version-control SPI: repository/branch/commit/status model, the provider EP, accounts + forge ports
":vcs-impl", // the Git engine: JGit-backed repository, the GitHub REST/device-flow client, the account store
":analytics-api", // opt-in usage-analytics SPI (event model + AnalyticsService/AnalyticsSink ports)
":analytics-impl", // the engine: durable batch buffer + Supabase PostgREST sink + scrubbed crash reporter
":store-api", // remote Projects Store SPI: catalog model + catalog/account/submission ports
":store-impl", // the engine: Supabase PostgREST catalog source, offline cache, submission packager
":block-api",
":block-impl",
":plugin-api", // UI extensibility SPI: the lean action model (IdeAction/ActionGroup + places) + EPs
":plugin-impl", // ActionManager: resolves UI_ACTION_EP/ACTION_GROUP_EP into places/menus, dispatches
":agent-api", // agentic-coding SPI: provider-neutral LLM client + AgentTool + AgentWorkspace engine port
":agent-impl", // the agent engine: OkHttp/SSE transport, Anthropic/OpenAI/Gemini providers, loop, built-in tools
":agent-mcp", // Model Context Protocol server: exposes the agent's tools over stdio JSON-RPC to external clients
":layout-preview-api", // owned XML-layout preview: render contracts (RCanvas/RenderNode/Renderer), android-free
":layout-preview-impl", // the preview engine: resource value resolver, inflater, built-in renderers, ASM bridge remapper
":awt-toolkit", // owned java.awt/javax.swing over RCanvas + the ASM remapper that points a program at it
":bench-support", // test-only: shared regression/benchmark harness (consumed via testImplementation)
":test-support", // test-only: shared fixtures/infrastructure (temp dirs, stubs, jars, contexts) — auto-wired
)
// The IDE shells (Compose Multiplatform + AGP). These apply the Android Gradle plugin / Compose KMP plugin,
// which require the Android SDK even to *configure*. CI sets CI_CORE_ONLY=true to build just the framework
// above (the part with the unit tests + regression suites) without provisioning an Android SDK; a normal
// local build leaves it unset and includes everything. Nothing in the framework depends on these, so
// excluding them is safe and keeps the acyclic graph intact.
if (System.getenv("CI_CORE_ONLY") != "true") {
include(
":interp-compose", // Compose bridge + render surface (KMP: desktop+android) — needs the Compose plugin
":ide-ui-api", // neutral IdeBackend port + DTOs + UI-contribution model, shared by :ide-ui and :ide-core
":ide-ui",
":agent-ui", // the AI agent's Compose UI as a self-contained plugin module (chat panel + provider sheet + permission overlay)
":vcs-ui", // the version-control Compose UI as a self-contained plugin module (Git panel, branches, history, sign-in, clone)
":ide-core",
":ide-desktop",
":ide-android",
)
}