diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/extensions/KotlinDebuggerFacade.kt b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/extensions/KotlinJvmDebuggerFacade.kt similarity index 65% rename from plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/extensions/KotlinDebuggerFacade.kt rename to plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/extensions/KotlinJvmDebuggerFacade.kt index e18a6829276f..6a1a4ed9e892 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/extensions/KotlinDebuggerFacade.kt +++ b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/extensions/KotlinJvmDebuggerFacade.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.extensions import com.intellij.openapi.components.serviceOrNull diff --git a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt similarity index 92% rename from plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt rename to plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt index 948803cdd35e..4320846a9c53 100644 --- a/plugins/kotlin/analysis/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt +++ b/plugins/kotlin/base/code-insight/src/org/jetbrains/kotlin/idea/util/PsiPrecedences.kt @@ -1,5 +1,4 @@ -// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.kotlin.idea.util import com.intellij.openapi.diagnostic.Logger @@ -11,7 +10,6 @@ import org.jetbrains.kotlin.psi.* import java.util.* object PsiPrecedences { - private val LOG = Logger.getInstance(PsiPrecedences::class.java) private val precedence: Map @@ -51,4 +49,4 @@ object PsiPrecedences { fun isTighter(subject: Int, tighterThan: Int): Boolean { return subject < tighterThan } -} +} \ No newline at end of file diff --git a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/KotlinProjectStructureUtils.kt b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/KotlinProjectStructureUtils.kt index 817092126d4f..8f581fcf711a 100644 --- a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/KotlinProjectStructureUtils.kt +++ b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/base/projectStructure/KotlinProjectStructureUtils.kt @@ -15,8 +15,11 @@ import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.concurrency.annotations.RequiresReadLock import org.jetbrains.annotations.ApiStatus +import org.jetbrains.jps.model.JpsElement +import org.jetbrains.jps.model.ex.JpsElementBase import org.jetbrains.jps.model.java.JavaResourceRootType import org.jetbrains.jps.model.java.JavaSourceRootType +import org.jetbrains.jps.model.module.JpsModuleSourceRoot import org.jetbrains.jps.model.module.JpsModuleSourceRootType import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule @@ -148,4 +151,23 @@ fun IdeaModuleInfo.supportsFeature(project: Project, feature: LanguageFeature): @ApiStatus.Internal fun IdeaModuleInfo.supportsAdditionalBuiltInsMembers(project: Project): Boolean { return supportsFeature(project, LanguageFeature.AdditionalBuiltInsMembers) +} + +@ApiStatus.Internal +fun JpsModuleSourceRoot.getMigratedSourceRootTypeWithProperties(): Pair, JpsElement>? { + val currentRootType = rootType + + @Suppress("UNCHECKED_CAST") + val newSourceRootType: JpsModuleSourceRootType = when (currentRootType) { + JavaSourceRootType.SOURCE -> SourceKotlinRootType as JpsModuleSourceRootType + JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType + JavaResourceRootType.RESOURCE -> ResourceKotlinRootType + JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType + else -> return null + } as JpsModuleSourceRootType + + val properties = getProperties(rootType)?.also { (it as? JpsElementBase<*>)?.setParent(null) } + ?: rootType.createDefaultProperties() + + return newSourceRootType to properties } \ No newline at end of file diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/ScriptingSupportSpecificSettingsProvider.kt b/plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/script/configuration/ScriptingSupportSpecificSettingsProvider.kt similarity index 100% rename from plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/script/configuration/ScriptingSupportSpecificSettingsProvider.kt rename to plugins/kotlin/base/scripting/src/org/jetbrains/kotlin/idea/script/configuration/ScriptingSupportSpecificSettingsProvider.kt diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt b/plugins/kotlin/base/statistics/src/org/jetbrains/kotlin/idea/statistics/WizardStatsService.kt similarity index 99% rename from plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt rename to plugins/kotlin/base/statistics/src/org/jetbrains/kotlin/idea/statistics/WizardStatsService.kt index d314d07405bb..0a194aa86d0e 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/projectWizard/WizardStatsService.kt +++ b/plugins/kotlin/base/statistics/src/org/jetbrains/kotlin/idea/statistics/WizardStatsService.kt @@ -1,6 +1,5 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. - -package org.jetbrains.kotlin.idea.projectWizard +package org.jetbrains.kotlin.idea.statistics import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields diff --git a/plugins/kotlin/frontend-independent/resources-en/messages/KotlinIdeaCoreBundle.properties b/plugins/kotlin/frontend-independent/resources-en/messages/KotlinIdeaCoreBundle.properties index 107bdbe18932..897141c730e2 100644 --- a/plugins/kotlin/frontend-independent/resources-en/messages/KotlinIdeaCoreBundle.properties +++ b/plugins/kotlin/frontend-independent/resources-en/messages/KotlinIdeaCoreBundle.properties @@ -4,6 +4,5 @@ implement.members.handler.no.members.hint=No members to implement have been foun override.members.handler.no.members.hint=No members to override have been found surround.with.error.cannot.perform.action=Cannot perform Surround With action to the current context surround.with.title=Surround with -notification.action.text.load.script.configuration=Load configuration implement.members.handler.title=Implement Members override.members.handler.title=Override Members \ No newline at end of file diff --git a/plugins/kotlin/gradle/gradle-java/kotlin.gradle.gradle-java.iml b/plugins/kotlin/gradle/gradle-java/kotlin.gradle.gradle-java.iml index 8974bb4fb27b..9f3780ed3f15 100644 --- a/plugins/kotlin/gradle/gradle-java/kotlin.gradle.gradle-java.iml +++ b/plugins/kotlin/gradle/gradle-java/kotlin.gradle.gradle-java.iml @@ -22,18 +22,22 @@ - + + + + + + + + + + + - - - - - - - + @@ -47,23 +51,14 @@ - - - - - - - - + + - - - @@ -78,8 +73,5 @@ - - - \ No newline at end of file diff --git a/plugins/kotlin/gradle/gradle-java/resources/messages/KotlinGradleJavaBundle.properties b/plugins/kotlin/gradle/gradle-java/resources/messages/KotlinGradleJavaBundle.properties new file mode 100644 index 000000000000..beefd7979115 --- /dev/null +++ b/plugins/kotlin/gradle/gradle-java/resources/messages/KotlinGradleJavaBundle.properties @@ -0,0 +1 @@ +notification.action.text.load.script.configuration=Load configuration \ No newline at end of file diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaBundle.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaBundle.kt new file mode 100644 index 000000000000..059d8fdb2b50 --- /dev/null +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaBundle.kt @@ -0,0 +1,18 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.gradleJava + +import org.jetbrains.annotations.Nls +import org.jetbrains.annotations.NonNls +import org.jetbrains.annotations.PropertyKey +import org.jetbrains.kotlin.util.AbstractKotlinBundle + +@NonNls +private const val BUNDLE = "messages.KotlinGradleJavaBundle" + +object KotlinGradleJavaBundle : AbstractKotlinBundle(BUNDLE) { + @Nls + @JvmStatic + fun message(@NonNls @PropertyKey(resourceBundle = BUNDLE) key: String, vararg params: Any): String { + return getMessage(key, *params) + } +} diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaUtils.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaUtils.kt new file mode 100644 index 000000000000..812f4208be78 --- /dev/null +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/KotlinGradleJavaUtils.kt @@ -0,0 +1,30 @@ +// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. + +@file:JvmName("KotlinGradleJavaUtils") + +package org.jetbrains.kotlin.idea.gradleJava + +import com.intellij.openapi.externalSystem.model.project.ContentRootData +import org.jetbrains.kotlin.idea.base.projectStructure.getMigratedSourceRootTypeWithProperties +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.openapi.util.io.FileUtil +import com.intellij.openapi.vfs.VirtualFileManager +import com.intellij.util.io.URLUtil +import org.jetbrains.annotations.ApiStatus +import org.jetbrains.kotlin.idea.framework.KotlinSdkType + +val ContentRootData.SourceRoot.pathAsUrl + @ApiStatus.Internal get() = VirtualFileManager.constructUrl(URLUtil.FILE_PROTOCOL, FileUtil.toSystemIndependentName(path)) + +@ApiStatus.Internal +fun migrateNonJvmSourceFolders(modifiableRootModel: ModifiableRootModel) { + for (contentEntry in modifiableRootModel.contentEntries) { + for (sourceFolder in contentEntry.sourceFolders) { + val (newSourceRootType, properties) = sourceFolder.jpsElement.getMigratedSourceRootTypeWithProperties() ?: continue + val url = sourceFolder.url + contentEntry.removeSourceFolder(sourceFolder) + contentEntry.addSourceFolder(url, newSourceRootType, properties) + } + } + KotlinSdkType.setUpIfNeeded() +} \ No newline at end of file diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/GradleKotlinFrameworkSupportProvider.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/GradleKotlinFrameworkSupportProvider.kt index 481b3992ed19..b609460fd52c 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/GradleKotlinFrameworkSupportProvider.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/GradleKotlinFrameworkSupportProvider.kt @@ -32,8 +32,8 @@ import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter import org.jetbrains.kotlin.idea.gradle.configuration.* import org.jetbrains.kotlin.idea.gradleCodeInsightCommon.KotlinWithGradleConfigurator -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.ProjectCreationStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.ProjectCreationStats import org.jetbrains.kotlin.idea.versions.* import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder import org.jetbrains.plugins.gradle.frameworkSupport.GradleFrameworkSupportProvider diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt index d2c90763c933..db0b1c9c11d4 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinDslGradleKotlinFrameworkSupportProvider.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.idea.gradleJava.configuration.KotlinBuildScriptManip import org.jetbrains.kotlin.idea.gradleJava.configuration.KotlinBuildScriptManipulator.Companion.getKotlinModuleDependencySnippet import org.jetbrains.kotlin.idea.projectConfiguration.getDefaultJvmTarget import org.jetbrains.kotlin.idea.projectConfiguration.getJvmStdlibArtifactId -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService import org.jetbrains.kotlin.idea.versions.MAVEN_JS_STDLIB_ID import org.jetbrains.plugins.gradle.frameworkSupport.BuildScriptDataBuilder import org.jetbrains.plugins.gradle.frameworkSupport.KotlinDslGradleFrameworkSupportProvider diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinGradleSourceSetDataService.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinGradleSourceSetDataService.kt index 4bfa2d3a31a3..022aa503c457 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinGradleSourceSetDataService.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinGradleSourceSetDataService.kt @@ -44,10 +44,10 @@ import org.jetbrains.kotlin.idea.gradle.configuration.klib.KotlinNativeLibraryNa import org.jetbrains.kotlin.idea.gradle.statistics.KotlinGradleFUSLogger import org.jetbrains.kotlin.idea.gradleJava.KotlinGradleFacadeImpl import org.jetbrains.kotlin.idea.gradleJava.inspections.getResolvedVersionByModuleData +import org.jetbrains.kotlin.idea.gradleJava.migrateNonJvmSourceFolders import org.jetbrains.kotlin.idea.gradleTooling.CompilerArgumentsBySourceSet import org.jetbrains.kotlin.idea.gradleTooling.arguments.CachedExtractedArgsInfo import org.jetbrains.kotlin.idea.gradleTooling.arguments.CompilerArgumentsCacheHolder -import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION import org.jetbrains.kotlin.platform.IdePlatformKind import org.jetbrains.kotlin.platform.impl.isCommon diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinSourceSetDataService.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinSourceSetDataService.kt index 482c84559440..e9b1b719a6b7 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinSourceSetDataService.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KotlinSourceSetDataService.kt @@ -26,12 +26,12 @@ import org.jetbrains.kotlin.idea.gradle.configuration.findChildModuleById import org.jetbrains.kotlin.idea.gradle.configuration.kotlinAndroidSourceSets import org.jetbrains.kotlin.idea.gradle.configuration.kotlinSourceSetData import org.jetbrains.kotlin.idea.gradleJava.KotlinGradleFacadeImpl +import org.jetbrains.kotlin.idea.gradleJava.migrateNonJvmSourceFolders +import org.jetbrains.kotlin.idea.gradleJava.pathAsUrl import org.jetbrains.kotlin.idea.projectModel.KotlinCompilation import org.jetbrains.kotlin.idea.projectModel.KotlinComponent import org.jetbrains.kotlin.idea.projectModel.KotlinPlatform import org.jetbrains.kotlin.idea.projectModel.KotlinSourceSet -import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders -import org.jetbrains.kotlin.idea.roots.pathAsUrl import org.jetbrains.kotlin.platform.IdePlatformKind import org.jetbrains.kotlin.platform.SimplePlatform import org.jetbrains.kotlin.platform.TargetPlatform diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptNotificationProvider.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptNotificationProvider.kt index 240b0d84cbf4..afff56d2248d 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptNotificationProvider.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/scripting/GradleScriptNotificationProvider.kt @@ -16,8 +16,8 @@ import com.intellij.ui.EditorNotificationProvider import com.intellij.ui.EditorNotificationProvider.CONST_NULL import org.jetbrains.annotations.Nls import org.jetbrains.kotlin.idea.base.scripting.KotlinBaseScriptingBundle -import org.jetbrains.kotlin.idea.core.util.KotlinIdeaCoreBundle import org.jetbrains.kotlin.idea.gradle.KotlinIdeaGradleBundle +import org.jetbrains.kotlin.idea.gradleJava.KotlinGradleJavaBundle import org.jetbrains.kotlin.idea.gradleJava.scripting.legacy.GradleStandaloneScriptActionsManager import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.GradleBuildRootsLocator import org.jetbrains.kotlin.idea.gradleJava.scripting.roots.GradleBuildRootsLocator.NotificationKind.* @@ -80,7 +80,7 @@ internal class GradleScriptNotificationProvider : EditorNotificationProvider { text(KotlinIdeaGradleBundle.message("notification.text.script.configuration.has.been.changed")) } - createActionLabel(KotlinIdeaCoreBundle.message("notification.action.text.load.script.configuration")) { + createActionLabel(KotlinGradleJavaBundle.message("notification.action.text.load.script.configuration")) { actions.reload() } @@ -144,7 +144,7 @@ internal class GradleScriptNotificationProvider : EditorNotificationProvider { KotlinIdeaGradleBundle.message("notification.text.script.configuration.has.been.changed") ) - createActionLabel(KotlinIdeaCoreBundle.message("notification.action.text.load.script.configuration")) { + createActionLabel(KotlinGradleJavaBundle.message("notification.action.text.load.script.configuration")) { actions.reload() } diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInDirectoryConfigurationProducer.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInDirectoryConfigurationProducer.kt index 3693767176a9..bba9e38fd0c2 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInDirectoryConfigurationProducer.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInDirectoryConfigurationProducer.kt @@ -4,11 +4,11 @@ package org.jetbrains.kotlin.idea.gradleJava.testing import com.intellij.execution.RunnerAndConfigurationSettings import com.intellij.execution.actions.ConfigurationContext import com.intellij.execution.actions.ConfigurationFromContext +import com.intellij.openapi.project.modules import com.intellij.psi.PsiElement import org.jetbrains.kotlin.idea.base.facet.isMultiPlatformModule import org.jetbrains.kotlin.idea.base.facet.platform.platform import org.jetbrains.kotlin.idea.gradleJava.run.MultiplatformTestTasksChooser -import org.jetbrains.kotlin.idea.util.projectStructure.allModules import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.plugins.gradle.execution.test.runner.AllInDirectoryGradleConfigurationProducer import org.jetbrains.plugins.gradle.util.createTestWildcardFilter @@ -41,7 +41,7 @@ class KotlinMultiplatformAllInDirectoryConfigurationProducer chosenElements: List ): List { - if (context.project.allModules().none { it.isMultiPlatformModule }) + if (context.project.modules.none { it.isMultiPlatformModule }) return emptyList() val wildcardFilter = createTestWildcardFilter() diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInPackageConfigurationProducer.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInPackageConfigurationProducer.kt index ec32532a1a41..354622bb2409 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInPackageConfigurationProducer.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/testing/KotlinMultiplatformAllInPackageConfigurationProducer.kt @@ -3,10 +3,10 @@ package org.jetbrains.kotlin.idea.gradleJava.testing import com.intellij.execution.actions.ConfigurationContext import com.intellij.execution.actions.ConfigurationFromContext +import com.intellij.openapi.project.modules import com.intellij.psi.PsiPackage import org.jetbrains.kotlin.idea.base.facet.isMultiPlatformModule import org.jetbrains.kotlin.idea.gradleJava.run.MultiplatformTestTasksChooser -import org.jetbrains.kotlin.idea.util.projectStructure.allModules import org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer import org.jetbrains.plugins.gradle.util.createTestFilterFrom @@ -28,7 +28,7 @@ class KotlinMultiplatformAllInPackageConfigurationProducer: AllInPackageGradleCo chosenElements: List ): List { - if (context.project.allModules().none { it.isMultiPlatformModule }) + if (context.project.modules.none { it.isMultiPlatformModule }) return emptyList() val psiLocation = context.psiLocation ?: return emptyList() diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmSourceRootConverterProvider.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmSourceRootConverterProvider.kt index 6599cb96b297..431ddf538374 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmSourceRootConverterProvider.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/KotlinNonJvmSourceRootConverterProvider.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.config.getFacetPlatformByConfigurationElement import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.base.platforms.KotlinJavaScriptStdlibDetectorFacility import org.jetbrains.kotlin.idea.base.platforms.KotlinJvmStdlibDetectorFacility +import org.jetbrains.kotlin.idea.base.projectStructure.getMigratedSourceRootTypeWithProperties import org.jetbrains.kotlin.idea.facet.KotlinFacetType import org.jetbrains.kotlin.platform.CommonPlatforms import org.jetbrains.kotlin.platform.TargetPlatform diff --git a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt index 563b04d236e0..b2d31a6e87c4 100644 --- a/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt +++ b/plugins/kotlin/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt @@ -2,71 +2,23 @@ package org.jetbrains.kotlin.idea.roots -import com.intellij.openapi.externalSystem.model.DataNode -import com.intellij.openapi.externalSystem.model.Key -import com.intellij.openapi.externalSystem.model.project.ContentRootData -import com.intellij.openapi.externalSystem.model.project.ProjectData -import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil -import com.intellij.openapi.externalSystem.util.ExternalSystemUtil import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager -import com.intellij.openapi.module.ModuleUtilCore import com.intellij.openapi.project.Project import com.intellij.openapi.project.rootManager -import com.intellij.openapi.roots.* -import com.intellij.openapi.util.IntellijInternalApi -import com.intellij.openapi.util.io.FileUtil +import com.intellij.openapi.roots.ModuleRootManager +import com.intellij.openapi.roots.ProjectRootManager +import com.intellij.openapi.roots.SourceFolder import com.intellij.openapi.vfs.NonPhysicalFileSystem import com.intellij.openapi.vfs.VirtualFile -import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.PsiCodeFragment import com.intellij.psi.PsiFile import com.intellij.util.containers.ContainerUtil -import com.intellij.util.io.URLUtil -import org.jetbrains.jps.model.JpsElement -import org.jetbrains.jps.model.ex.JpsElementBase import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes -import org.jetbrains.jps.model.java.JavaResourceRootType -import org.jetbrains.jps.model.java.JavaSourceRootType -import org.jetbrains.jps.model.module.JpsModuleSourceRoot import org.jetbrains.jps.model.module.JpsModuleSourceRootType -import org.jetbrains.kotlin.config.* -import org.jetbrains.kotlin.idea.framework.KotlinSdkType +import org.jetbrains.kotlin.config.ALL_KOTLIN_RESOURCE_ROOT_TYPES import org.jetbrains.kotlin.idea.util.KOTLIN_AWARE_SOURCE_ROOT_TYPES -private fun JpsModuleSourceRoot.getOrCreateProperties() = - getProperties(rootType)?.also { (it as? JpsElementBase<*>)?.setParent(null) } ?: rootType.createDefaultProperties() - -fun JpsModuleSourceRoot.getMigratedSourceRootTypeWithProperties(): Pair, JpsElement>? { - val currentRootType = rootType - - @Suppress("UNCHECKED_CAST") - val newSourceRootType: JpsModuleSourceRootType = when (currentRootType) { - JavaSourceRootType.SOURCE -> SourceKotlinRootType as JpsModuleSourceRootType - JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType - JavaResourceRootType.RESOURCE -> ResourceKotlinRootType - JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType - else -> return null - } as JpsModuleSourceRootType - return newSourceRootType to getOrCreateProperties() -} - -fun migrateNonJvmSourceFolders(modifiableRootModel: ModifiableRootModel) { - for (contentEntry in modifiableRootModel.contentEntries) { - for (sourceFolder in contentEntry.sourceFolders) { - val (newSourceRootType, properties) = sourceFolder.jpsElement.getMigratedSourceRootTypeWithProperties() ?: continue - val url = sourceFolder.url - contentEntry.removeSourceFolder(sourceFolder) - contentEntry.addSourceFolder(url, newSourceRootType, properties) - } - } - KotlinSdkType.setUpIfNeeded() -} - -@IntellijInternalApi -val ContentRootData.SourceRoot.pathAsUrl - get() = VirtualFileManager.constructUrl(URLUtil.FILE_PROTOCOL, FileUtil.toSystemIndependentName(path)) - fun getKotlinAwareDestinationSourceRoots(project: Project): List { return ModuleManager.getInstance(project).modules.flatMap { it.collectKotlinAwareDestinationSourceRoots() } } diff --git a/plugins/kotlin/intellij.kotlin.plugin.community.fir.main.iml b/plugins/kotlin/intellij.kotlin.plugin.community.fir.main.iml index e75c382e658c..5ea4df17eb75 100644 --- a/plugins/kotlin/intellij.kotlin.plugin.community.fir.main.iml +++ b/plugins/kotlin/intellij.kotlin.plugin.community.fir.main.iml @@ -54,6 +54,7 @@ + diff --git a/plugins/kotlin/jvm-debugger/core-fe10/kotlin.jvm-debugger.core-fe10.iml b/plugins/kotlin/jvm-debugger/core-fe10/kotlin.jvm-debugger.core-fe10.iml index a85895e9fc5d..2a0e14328547 100644 --- a/plugins/kotlin/jvm-debugger/core-fe10/kotlin.jvm-debugger.core-fe10.iml +++ b/plugins/kotlin/jvm-debugger/core-fe10/kotlin.jvm-debugger.core-fe10.iml @@ -19,6 +19,7 @@ + diff --git a/plugins/kotlin/jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt b/plugins/kotlin/jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt index b37cce7719ce..24c1b0f9f738 100644 --- a/plugins/kotlin/jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt +++ b/plugins/kotlin/jvm/src/org/jetbrains/kotlin/idea/framework/JavaFrameworkSupportProvider.kt @@ -20,8 +20,8 @@ import org.jetbrains.kotlin.idea.configuration.buildSystemType import org.jetbrains.kotlin.idea.formatter.KotlinStyleGuideCodeStyle import org.jetbrains.kotlin.idea.formatter.ProjectCodeStyleImporter import org.jetbrains.kotlin.idea.projectConfiguration.JSLibraryStdDescription -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.ProjectCreationStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.ProjectCreationStats import javax.swing.JComponent diff --git a/plugins/kotlin/plugin-fir/kotlin.plugin-fir.iml b/plugins/kotlin/plugin-fir/kotlin.plugin-fir.iml index 3303a33ca7ba..b6213dc2d520 100644 --- a/plugins/kotlin/plugin-fir/kotlin.plugin-fir.iml +++ b/plugins/kotlin/plugin-fir/kotlin.plugin-fir.iml @@ -46,6 +46,7 @@ + diff --git a/plugins/kotlin/plugin/resources/META-INF/statistics.xml b/plugins/kotlin/plugin/resources/META-INF/statistics.xml index d8dbc86bcca4..582ac86dc40a 100644 --- a/plugins/kotlin/plugin/resources/META-INF/statistics.xml +++ b/plugins/kotlin/plugin/resources/META-INF/statistics.xml @@ -1,6 +1,6 @@ - + + diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt index 63b17785c557..c7ef3291ac51 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/IdeWizard.kt @@ -8,7 +8,7 @@ import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory import org.jetbrains.kotlin.idea.projectConfiguration.JavaRuntimeLibraryDescription -import org.jetbrains.kotlin.idea.projectWizard.WizardLoggingSession +import org.jetbrains.kotlin.idea.statistics.WizardLoggingSession import org.jetbrains.kotlin.tools.projectWizard.core.ContextComponents import org.jetbrains.kotlin.tools.projectWizard.core.PluginsCreator import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingReference diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index 0e0fc4981c61..8c00906d1db6 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -24,9 +24,9 @@ import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.util.SystemProperties import com.intellij.util.ui.EDT -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.ProjectCreationStats -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.UiEditorUsageStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.ProjectCreationStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.UiEditorUsageStats import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.tools.projectWizard.core.buildList import org.jetbrains.kotlin.tools.projectWizard.core.div diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt index 5d0e0db4d67f..47dbadf846d9 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewWizardOpener.kt @@ -13,8 +13,8 @@ import com.intellij.openapi.progress.impl.BackgroundableProcessIndicator import com.intellij.openapi.project.Project import com.intellij.openapi.project.ProjectManager import com.intellij.openapi.roots.ui.configuration.ModulesProvider -import org.jetbrains.kotlin.idea.projectWizard.WizardLoggingSession -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardLoggingSession +import org.jetbrains.kotlin.idea.statistics.WizardStatsService import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate import org.jetbrains.kotlin.utils.addToStdlib.safeAs diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OnUserSettingChangeStatisticsLogger.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OnUserSettingChangeStatisticsLogger.kt index e09adfc14114..0b4e53216ccb 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OnUserSettingChangeStatisticsLogger.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/OnUserSettingChangeStatisticsLogger.kt @@ -1,8 +1,8 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.tools.projectWizard.wizard -import org.jetbrains.kotlin.idea.projectWizard.WizardLoggingSession -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardLoggingSession +import org.jetbrains.kotlin.idea.statistics.WizardStatsService import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingReference import org.jetbrains.kotlin.tools.projectWizard.projectTemplates.ProjectTemplate import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt index 4a7ae685e9d8..e8d1ac6a2d4e 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/firstStep/FirstWizardStepComponent.kt @@ -20,7 +20,7 @@ import com.intellij.ui.dsl.gridLayout.HorizontalAlign import com.intellij.util.ui.JBInsets import com.intellij.util.ui.JBUI import com.intellij.util.ui.components.BorderLayoutPanel -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.SettingReference import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.reference diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt index c6a4683b1b8b..02607bd7afc1 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/ModuleSettingsComponent.kt @@ -2,7 +2,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep import com.intellij.util.ui.JBUI -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.UiEditorUsageStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.UiEditorUsageStats import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.Reader import org.jetbrains.kotlin.tools.projectWizard.core.entity.StringValidators diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt index 8bf87c2bd128..9a5817b32c32 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/SecondStepWizardComponent.kt @@ -2,7 +2,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep import com.intellij.util.ui.JBUI -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.UiEditorUsageStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.UiEditorUsageStats import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt index af3ce64555fe..f3b859fe0f77 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorComponent.kt @@ -4,7 +4,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.modulesEdi import com.intellij.ui.JBColor import com.intellij.ui.ScrollPaneFactory import com.intellij.util.ui.JBUI -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.UiEditorUsageStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.UiEditorUsageStats import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.core.entity.ValidationResult import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.ListSettingType diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt index 876831655d5f..8510b9f4040c 100644 --- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt +++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/TargetsModel.kt @@ -1,8 +1,8 @@ // Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.modulesEditor -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService -import org.jetbrains.kotlin.idea.projectWizard.WizardStatsService.UiEditorUsageStats +import org.jetbrains.kotlin.idea.statistics.WizardStatsService +import org.jetbrains.kotlin.idea.statistics.WizardStatsService.UiEditorUsageStats import org.jetbrains.kotlin.tools.projectWizard.core.Context import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.ModuleKind