mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Make 'kotlin.gradle.gradle-java' frontend-agnostic (KTIJ-21699)
GitOrigin-RevId: e4a7ab98515af65de2a53ca9394204a6729edcb9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8b6c66d9d9
commit
8e319f89ff
+1
-1
@@ -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
|
||||
+2
-4
@@ -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<IElementType, Int>
|
||||
@@ -51,4 +49,4 @@ object PsiPrecedences {
|
||||
fun isTighter(subject: Int, tighterThan: Int): Boolean {
|
||||
return subject < tighterThan
|
||||
}
|
||||
}
|
||||
}
|
||||
+22
@@ -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<JpsModuleSourceRootType<JpsElement>, JpsElement>? {
|
||||
val currentRootType = rootType
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val newSourceRootType: JpsModuleSourceRootType<JpsElement> = when (currentRootType) {
|
||||
JavaSourceRootType.SOURCE -> SourceKotlinRootType as JpsModuleSourceRootType<JpsElement>
|
||||
JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType
|
||||
JavaResourceRootType.RESOURCE -> ResourceKotlinRootType
|
||||
JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType
|
||||
else -> return null
|
||||
} as JpsModuleSourceRootType<JpsElement>
|
||||
|
||||
val properties = getProperties(rootType)?.also { (it as? JpsElementBase<*>)?.setParent(null) }
|
||||
?: rootType.createDefaultProperties()
|
||||
|
||||
return newSourceRootType to properties
|
||||
}
|
||||
+1
-2
@@ -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
|
||||
-1
@@ -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
|
||||
@@ -22,18 +22,22 @@
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="intellij.platform.core" scope="RUNTIME" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-stdlib" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-compiler-common" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-compiler-fe10" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-jps-common" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-compiler-impl" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-common" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-jvm" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-script-runtime" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-gradle-statistics" level="project" />
|
||||
<orderEntry type="library" name="kotlin-tooling-core" level="project" />
|
||||
<orderEntry type="library" name="kotlin-gradle-plugin-idea-proto" level="project" />
|
||||
<orderEntry type="library" name="kotlin-gradle-plugin-idea" level="project" />
|
||||
<orderEntry type="library" name="kotlinx-coroutines-jdk8" level="project" />
|
||||
<orderEntry type="library" name="Guava" level="project" />
|
||||
<orderEntry type="library" name="Gradle" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-jvm" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-common" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-compiler-common" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-scripting-compiler-impl" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-compiler-fe10" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-script-runtime" level="project" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-gradle-statistics" level="project" />
|
||||
<orderEntry type="module" module-name="kotlin.base.frontend-agnostic" />
|
||||
<orderEntry type="module" module-name="kotlin.base.util" />
|
||||
<orderEntry type="module" module-name="kotlin.base.compiler-configuration" />
|
||||
<orderEntry type="module" module-name="kotlin.base.plugin" />
|
||||
@@ -47,23 +51,14 @@
|
||||
<orderEntry type="module" module-name="kotlin.base.code-insight" />
|
||||
<orderEntry type="module" module-name="kotlin.base.resources" />
|
||||
<orderEntry type="module" module-name="kotlin.base.statistics" />
|
||||
<orderEntry type="module" module-name="kotlin.core" />
|
||||
<orderEntry type="module" module-name="kotlin.fir.frontend-independent" />
|
||||
<orderEntry type="library" name="kotlinc.kotlin-jps-common" level="project" />
|
||||
<orderEntry type="module" module-name="kotlin.jvm-run-configurations" />
|
||||
<orderEntry type="module" module-name="kotlin.project-configuration" />
|
||||
<orderEntry type="module" module-name="kotlin.jvm" />
|
||||
<orderEntry type="module" module-name="kotlin.idea" />
|
||||
<orderEntry type="module" module-name="kotlin.formatter" />
|
||||
<orderEntry type="module" module-name="kotlin.preferences" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-tooling" />
|
||||
<orderEntry type="module" module-name="kotlin.native" />
|
||||
<orderEntry type="module" module-name="kotlin.inspections-fe10" />
|
||||
<orderEntry type="module" module-name="kotlin.project-configuration" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-tooling" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.code-insight-common" />
|
||||
<orderEntry type="module" module-name="kotlin.compiler-plugins.kapt" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="kotlin.compiler-plugins.scripting" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="kotlin.project-wizard.idea" scope="RUNTIME" />
|
||||
<orderEntry type="module" module-name="intellij.platform.objectSerializer.annotations" />
|
||||
<orderEntry type="module" module-name="intellij.platform.projectModel.impl" />
|
||||
<orderEntry type="module" module-name="intellij.platform.externalSystem" />
|
||||
@@ -78,8 +73,5 @@
|
||||
<orderEntry type="module" module-name="intellij.java.compiler.impl" />
|
||||
<orderEntry type="module" module-name="intellij.gradle.java" />
|
||||
<orderEntry type="module" module-name="intellij.gradle.toolingExtension.impl" />
|
||||
<orderEntry type="library" name="kotlin-gradle-plugin-idea" level="project" />
|
||||
<orderEntry type="library" name="kotlin-tooling-core" level="project" />
|
||||
<orderEntry type="library" name="kotlin-gradle-plugin-idea-proto" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -0,0 +1 @@
|
||||
notification.action.text.load.script.configuration=Load configuration
|
||||
+18
@@ -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)
|
||||
}
|
||||
}
|
||||
+30
@@ -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()
|
||||
}
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+3
-3
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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<PsiElement>
|
||||
): List<TestTasksToRun> {
|
||||
|
||||
if (context.project.allModules().none { it.isMultiPlatformModule })
|
||||
if (context.project.modules.none { it.isMultiPlatformModule })
|
||||
return emptyList()
|
||||
|
||||
val wildcardFilter = createTestWildcardFilter()
|
||||
|
||||
+2
-2
@@ -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<PsiPackage>
|
||||
): List<TestTasksToRun> {
|
||||
|
||||
if (context.project.allModules().none { it.isMultiPlatformModule })
|
||||
if (context.project.modules.none { it.isMultiPlatformModule })
|
||||
return emptyList()
|
||||
|
||||
val psiLocation = context.psiLocation ?: return emptyList()
|
||||
|
||||
+1
@@ -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
|
||||
|
||||
@@ -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<JpsModuleSourceRootType<JpsElement>, JpsElement>? {
|
||||
val currentRootType = rootType
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val newSourceRootType: JpsModuleSourceRootType<JpsElement> = when (currentRootType) {
|
||||
JavaSourceRootType.SOURCE -> SourceKotlinRootType as JpsModuleSourceRootType<JpsElement>
|
||||
JavaSourceRootType.TEST_SOURCE -> TestSourceKotlinRootType
|
||||
JavaResourceRootType.RESOURCE -> ResourceKotlinRootType
|
||||
JavaResourceRootType.TEST_RESOURCE -> TestResourceKotlinRootType
|
||||
else -> return null
|
||||
} as JpsModuleSourceRootType<JpsElement>
|
||||
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<VirtualFile> {
|
||||
return ModuleManager.getInstance(project).modules.flatMap { it.collectKotlinAwareDestinationSourceRoots() }
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
<orderEntry type="module" module-name="kotlin.gradle.code-insight-common" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.code-insight-groovy" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-native" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-java" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.grazie" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.jvm-run-configurations" exported="" />
|
||||
<orderEntry type="module" module-name="kotlin.line-indent-provider" exported="" />
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<orderEntry type="module" module-name="kotlin.base.facet" />
|
||||
<orderEntry type="module" module-name="kotlin.base.project-structure" />
|
||||
<orderEntry type="module" module-name="kotlin.base.analysis" />
|
||||
<orderEntry type="module" module-name="kotlin.base.code-insight" />
|
||||
<orderEntry type="module" module-name="kotlin.base.resources" />
|
||||
<orderEntry type="module" module-name="kotlin.base.fe10.analysis" />
|
||||
<orderEntry type="module" module-name="kotlin.base.fe10.code-insight" />
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<orderEntry type="module" module-name="kotlin.gradle.code-insight-common" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.code-insight-groovy" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-native" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.gradle.gradle-java" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.native" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.grazie" scope="PROVIDED" />
|
||||
<orderEntry type="module" module-name="kotlin.inspections" scope="PROVIDED" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<statistics.counterUsagesCollector implementationClass="org.jetbrains.kotlin.idea.projectWizard.WizardStatsService"/>
|
||||
<statistics.counterUsagesCollector implementationClass="org.jetbrains.kotlin.idea.statistics.WizardStatsService"/>
|
||||
<statistics.counterUsagesCollector implementationClass="org.jetbrains.kotlin.idea.statistics.KotlinCreateFileFUSCollector"/>
|
||||
<statistics.counterUsagesCollector implementationClass="org.jetbrains.kotlin.idea.statistics.KotlinMoveRefactoringFUSCollector"/>
|
||||
<statistics.counterUsagesCollector
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
<orderEntry type="module" module-name="kotlin.base.compiler-configuration" />
|
||||
<orderEntry type="module" module-name="kotlin.base.plugin" />
|
||||
<orderEntry type="module" module-name="kotlin.base.facet" />
|
||||
<orderEntry type="module" module-name="kotlin.base.statistics" />
|
||||
<orderEntry type="module" module-name="kotlin.base.external-build-system" />
|
||||
<orderEntry type="module" module-name="kotlin.base.resources" />
|
||||
<orderEntry type="module" module-name="kotlin.core" />
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user