Skip to content

Commit c5b5ae5

Browse files
committed
feat: new method setVirtualFolder
1 parent 63fc772 commit c5b5ae5

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

api/src/main/kotlin/org/modelix/mps/api/IModelixMpsApi.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ interface IModelixMpsApi {
2525
getVirtualFolder(it, module).takeIf { !it.isNullOrEmpty() }
2626
}
2727
fun getVirtualFolder(module: SModule): String? = getVirtualFolders(module).firstOrNull()
28+
fun setVirtualFolder(project: Project, module: SModule, folder: String?)
29+
fun setVirtualFolder(module: SModule, folder: String?)
2830

2931
fun fixVersions(project: Project, module: SModule)
3032

impl203/src/main/kotlin/org/modelix/mps/api/ModelixMpsApiImpl203.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import jetbrains.mps.ide.MPSCoreComponents
66
import jetbrains.mps.ide.project.ProjectHelper
77
import jetbrains.mps.lang.migration.runtime.base.VersionFixer
88
import jetbrains.mps.openapi.editor.EditorContext
9-
import jetbrains.mps.project.MPSProject
9+
import jetbrains.mps.project.ProjectBase
1010
import jetbrains.mps.project.ProjectManager
1111
import jetbrains.mps.smodel.MPSModuleRepository
1212
import jetbrains.mps.smodel.SReference
@@ -30,7 +30,15 @@ open class ModelixMpsApiImpl203 : IModelixMpsApi {
3030
project: Project,
3131
module: SModule,
3232
): String? {
33-
return (project as MPSProject).getPath(module)?.virtualFolder?.takeIf { it.isNotEmpty() }
33+
return (project as ProjectBase).getPath(module)?.virtualFolder?.takeIf { it.isNotEmpty() }
34+
}
35+
36+
override fun setVirtualFolder(project: Project, module: SModule, folder: String?) {
37+
(project as ProjectBase).setVirtualFolder(module, folder)
38+
}
39+
40+
override fun setVirtualFolder(module: SModule, folder: String?) {
41+
getMPSProjects().filter { it.projectModules.contains(module) }.forEach { setVirtualFolder(it, module, folder) }
3442
}
3543

3644
override fun getGlobalRepository(): SRepository {

lib/api/lib.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,7 @@ public final class org/modelix/mps/api/ModelixMpsApi : org/modelix/mps/api/IMode
1818
public fun runWithProject (Lcom/intellij/openapi/project/Project;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
1919
public fun runWithProject (Lorg/jetbrains/mps/openapi/project/Project;Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
2020
public fun setReference (Lorg/jetbrains/mps/openapi/model/SNode;Lorg/jetbrains/mps/openapi/language/SReferenceLink;Lorg/jetbrains/mps/openapi/model/SNodeReference;)V
21+
public fun setVirtualFolder (Lorg/jetbrains/mps/openapi/module/SModule;Ljava/lang/String;)V
22+
public fun setVirtualFolder (Lorg/jetbrains/mps/openapi/project/Project;Lorg/jetbrains/mps/openapi/module/SModule;Ljava/lang/String;)V
2123
}
2224

0 commit comments

Comments
 (0)