[maven] IDEA-356082 AbstractOpenProjectProvider.unlinkOtherLinkedProjects

GitOrigin-RevId: 0d2d6106d3cb6c59b25b9cba835ed67834f68080
This commit is contained in:
Dmitry Kichinsky
2024-07-30 22:34:17 +02:00
committed by intellij-monorepo-bot
parent cd71a13b09
commit eb78b2af1a
3 changed files with 4 additions and 4 deletions

View File

@@ -121,7 +121,7 @@ a:com.intellij.openapi.externalSystem.dependency.analyzer.ExternalSystemDependen
- f:linkToExistingProjectAsync(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.project.Project,kotlin.coroutines.Continuation):java.lang.Object
- f:linkToExistingProjectAsync(java.lang.String,com.intellij.openapi.project.Project,kotlin.coroutines.Continuation):java.lang.Object
- openProject(com.intellij.openapi.vfs.VirtualFile,com.intellij.openapi.project.Project,Z,kotlin.coroutines.Continuation):java.lang.Object
- pf:unlinkAllLinkedProjects(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile,kotlin.coroutines.Continuation):java.lang.Object
- pf:unlinkOtherLinkedProjects(com.intellij.openapi.project.Project,com.intellij.openapi.vfs.VirtualFile,kotlin.coroutines.Continuation):java.lang.Object
- unlinkProject(com.intellij.openapi.project.Project,java.lang.String,kotlin.coroutines.Continuation):java.lang.Object
*f:com.intellij.openapi.externalSystem.importing.AbstractOpenProjectProvider$Companion
a:com.intellij.openapi.externalSystem.importing.ExternalProjectStructureCustomizer

View File

@@ -46,12 +46,12 @@ abstract class AbstractOpenProjectProvider {
}
suspend fun linkToExistingProjectAsync(projectFile: VirtualFile, project: Project) {
unlinkAllLinkedProjects(project, projectFile)
unlinkOtherLinkedProjects(project, projectFile)
LOG.info("Linking $systemId project ${projectFile.path}")
linkProject(projectFile, project)
}
protected suspend fun unlinkAllLinkedProjects(project: Project, projectFile: VirtualFile) {
protected suspend fun unlinkOtherLinkedProjects(project: Project, projectFile: VirtualFile) {
val externalProjectPath = if (projectFile.isDirectory) projectFile.path else projectFile.parent.path
EP_NAME.forEachExtensionSafeAsync { extension ->
if (extension.systemId != systemId && extension.isLinkedProject(project, externalProjectPath)) {

View File

@@ -63,7 +63,7 @@ class MavenOpenProjectProvider : AbstractOpenProjectProvider() {
@ApiStatus.Internal
suspend fun forceLinkToExistingProjectAsync(projectFile: VirtualFile, project: Project) {
val projectRoot = if (projectFile.isDirectory) projectFile else projectFile.parent
unlinkAllLinkedProjects(project, projectRoot)
unlinkOtherLinkedProjects(project, projectRoot)
doLinkToExistingProjectAsync(projectFile, project, true)
}