Skip to content

Commit 01a64ad

Browse files
committed
feat(mps-model-adapters): new MPS module org.modelix.model.repositoryconcepts
1 parent d8d6f87 commit 01a64ad

File tree

9 files changed

+581
-10
lines changed

9 files changed

+581
-10
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,9 @@ kotlin_gen
1111
**/.ideaconfig
1212
**/.mpsconfig
1313
.kotlin
14+
15+
**/classes_gen/
16+
**/source_gen/
17+
**/source_gen.caches/
18+
**/.mps-caches/
19+
/.intellijPlatform/

mps-model-adapters-plugin/build.gradle.kts

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,18 @@
1+
import org.jetbrains.intellij.tasks.PrepareSandboxTask
2+
import org.modelix.buildtools.KnownModuleIds
3+
import org.modelix.buildtools.buildStubsSolutionJar
14
import org.modelix.copyMps
25
import org.modelix.excludeMPSLibraries
36
import org.modelix.mpsHomeDir
47
import org.modelix.mpsMajorVersion
8+
import kotlin.io.resolve
9+
import kotlin.jvm.java
10+
11+
buildscript {
12+
dependencies {
13+
classpath(libs.modelix.build.tools.lib)
14+
}
15+
}
516

617
plugins {
718
`modelix-kotlin-jvm`
@@ -10,7 +21,7 @@ plugins {
1021
}
1122

1223
dependencies {
13-
testImplementation(project(":mps-model-adapters"), excludeMPSLibraries)
24+
implementation(project(":mps-model-adapters"), excludeMPSLibraries)
1425
testImplementation(kotlin("test"))
1526
}
1627

@@ -61,6 +72,36 @@ tasks {
6172
into(mpsPluginDir.resolve("mps-model-adapters-plugin"))
6273
}
6374
}
75+
76+
withType(PrepareSandboxTask::class.java) {
77+
dependsOn(":mps-repository-concepts:assembleMpsModules")
78+
intoChild(pluginName.map { "$it/languages" })
79+
.from(project(":mps-repository-concepts").layout.buildDirectory.map { it.dir("mpsbuild/packaged-modules") })
80+
81+
intoChild(pluginName.map { "$it/META-INF" })
82+
.from(project.layout.projectDirectory.file("src/main/resources/META-INF"))
83+
.exclude("plugin.xml")
84+
intoChild(pluginName.map { "$it/META-INF" })
85+
.from(patchPluginXml.flatMap { it.outputFiles })
86+
87+
doLast {
88+
val ownJar: File = pluginJar.get().asFile
89+
val classpathJars = configurations.runtimeClasspath.get().resolve()
90+
val stubModelJars = configurations.compileClasspath.get().resolve().intersect(classpathJars)
91+
buildStubsSolutionJar {
92+
solutionName("org.modelix.mps.model.adapters.stubs")
93+
solutionId("83727c3c-e8b0-4bdd-a1fc-cb4fea831777")
94+
outputFolder(defaultDestinationDir.get().resolve(project.name).resolve("languages"))
95+
classpathJars.forEach { classpathJar(it.name) }
96+
stubModelJars.forEach { javaStubsJar(it.name) }
97+
moduleDependency(KnownModuleIds.Annotations)
98+
moduleDependency(KnownModuleIds.JDK)
99+
moduleDependency(KnownModuleIds.MPS_OpenAPI)
100+
moduleDependency(KnownModuleIds.MPS_Core)
101+
moduleDependency(KnownModuleIds.MPS_IDEA)
102+
}
103+
}
104+
}
64105
}
65106

66107
group = "org.modelix.mps"

mps-model-adapters-plugin/src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@
2424
<!-- Extension points defined by the plugin.
2525
Read more: https://plugins.jetbrains.com/docs/intellij/plugin-extension-points.html -->
2626
<extensions defaultExtensionNs="com.intellij">
27-
27+
<mps.LanguageLibrary dir="/languages" />
2828
</extensions>
2929
</idea-plugin>

mps-model-adapters-plugin/src/test/kotlin/org/modelix/model/mpsadapters/ConceptResolutionTest.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,4 @@ class ConceptResolutionTest : MpsAdaptersTestBase("SimpleProject") {
1616
assertEquals("Module", moduleConcept.getShortName())
1717
assertContainsElements(moduleConcept.getOwnChildLinks().map { it.getSimpleName() }, "models")
1818
}
19-
20-
fun `test MPSLanguageRepository cannot resolve the Module concept`() {
21-
val conceptUID = BuiltinLanguages.MPSRepositoryConcepts.Module.getReference().getUID()
22-
val moduleConcept = MPSLanguageRepository(mpsProject.repository).resolveConcept(conceptUID)
23-
24-
// After making the repository language part of this plugin, this assertion will fail and this test can just be removed.
25-
assertNull(moduleConcept)
26-
}
2719
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project version="4">
3+
<component name="MPSProject">
4+
<projectModules>
5+
<modulePath path="$PROJECT_DIR$/org.modelix.model.repositoryconcepts/org.modelix.model.repositoryconcepts.mpl" folder="" />
6+
</projectModules>
7+
</component>
8+
</project>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import org.gradle.internal.jvm.Jvm
2+
import org.modelix.mpsHomeDir
3+
4+
plugins {
5+
base
6+
`maven-publish`
7+
alias(libs.plugins.modelix.mps.buildtools)
8+
}
9+
10+
group = "org.modelix.mps.modules"
11+
12+
mpsBuild {
13+
mpsHome = mpsHomeDir.get().asFile.absolutePath
14+
javaHome = Jvm.current().javaHome
15+
disableParentPublication()
16+
17+
search("modules")
18+
publication("repositoryconcepts") {
19+
module("org.modelix.model.repositoryconcepts")
20+
}
21+
}

0 commit comments

Comments
 (0)