From 70cda1b113caaed6039016e61b21d36340e08f55 Mon Sep 17 00:00:00 2001 From: Yunir Salimzyanov Date: Mon, 17 Aug 2020 10:14:06 +0300 Subject: [PATCH] Refactor and fix files previously affected by 192 patchset (KTI-315) --- .bunch | 1 - .../idea/klib/KlibLoadingMetadataCache.kt | 103 +++++++++++++- .../klib/KlibLoadingMetadataCacheCompat.kt | 110 --------------- ...y.java => KotlinFileTypeFactoryUtils.java} | 18 +-- .../KotlinNativeABICompatibilityChecker.kt | 1 - .../ExternalSystemImportingTestCase.java | 9 +- .../gradle/ExternalSystemTestCase.java | 12 +- .../gradle/ExternalSystemTestCaseBunch.java | 39 ------ .../kotlin/idea/JvmPluginStartupComponent.kt | 2 +- .../idea/compiler/KotlinCompilerManager.kt | 2 +- .../scratch/ScratchFileModuleInfoProvider.kt | 2 +- .../maven/KotlinImporterComponentCompat.kt | 13 -- .../kotlin/idea/maven/KotlinMavenImporter.kt | 6 +- .../kotlin/idea/maven/MavenImportListener.kt | 4 +- .../ide/konan/KotlinNativeFileTypeFactory.kt | 16 --- .../KotlinLightCodeInsightFixtureTestCase.kt | 3 +- .../org/jetbrains/kotlin/idea/test/compat.kt | 6 - .../jetbrains/kotlin/idea/test/compat.kt.193 | 6 - .../jetbrains/kotlin/idea/test/compat.kt.202 | 8 -- .../idea/debugger/KotlinPositionManager.kt | 4 +- .../debugger/ToggleKotlinVariablesView.kt | 4 +- .../kotlin/idea/debugger/debuggerUtil.kt | 6 +- .../kotlin/idea/debugger/DebuggerUtils.kt | 4 +- .../resources-descriptors/META-INF/plugin.xml | 2 - .../META-INF/plugin.xml.193 | 2 - .../META-INF/plugin.xml.202 | 2 - .../META-INF/plugin.xml.as40 | 2 - .../META-INF/plugin.xml.as41 | 2 - idea/resources/META-INF/jvm-common.xml | 4 + idea/resources/META-INF/jvm.xml | 3 - idea/resources/META-INF/jvm.xml.193 | 3 - idea/resources/META-INF/maven-common.xml | 128 ------------------ idea/resources/META-INF/maven.xml | 125 +++++++++++++++++ idea/resources/META-INF/plugin-common.xml | 2 + .../idea/KotlinBuiltInFileTypeFactory.kt | 30 ---- .../KotlinJavaScriptMetaFileTypeFactory.kt | 28 ---- .../kotlin/idea/KotlinModuleFileFactory.java | 30 ---- .../KotlinCopyPasteReferenceProcessor.kt | 13 +- ...CopyPasteUtil.kt => ReviewAddedImports.kt} | 15 +- .../codevision/KotlinCodeVisionCompat.kt | 37 ----- .../codevision/KotlinCodeVisionLimitedHint.kt | 13 +- .../codevision/KotlinCodeVisionProvider.kt | 10 +- .../versions/KotlinUpdatePluginComponent.kt | 1 - .../AbstractConfigureKotlinTest.kt | 3 +- .../AbstractConfigureKotlinTest.kt.203 | 3 +- .../kotlin/idea/configuration/compat.kt | 15 -- 46 files changed, 301 insertions(+), 551 deletions(-) delete mode 100644 idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCacheCompat.kt rename idea/idea-core/src/org/jetbrains/kotlin/idea/core/{KotlinFileTypeFactory.java => KotlinFileTypeFactoryUtils.java} (59%) delete mode 100644 idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCaseBunch.java delete mode 100644 idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinImporterComponentCompat.kt delete mode 100644 idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeFileTypeFactory.kt delete mode 100644 idea/resources/META-INF/maven-common.xml delete mode 100644 idea/src/org/jetbrains/kotlin/idea/KotlinBuiltInFileTypeFactory.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/KotlinJavaScriptMetaFileTypeFactory.kt delete mode 100644 idea/src/org/jetbrains/kotlin/idea/KotlinModuleFileFactory.java rename idea/src/org/jetbrains/kotlin/idea/codeInsight/{KotlinCopyPasteUtil.kt => ReviewAddedImports.kt} (87%) delete mode 100644 idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt delete mode 100644 idea/tests/org/jetbrains/kotlin/idea/configuration/compat.kt diff --git a/.bunch b/.bunch index 8a7d10d01ed..e337358c398 100644 --- a/.bunch +++ b/.bunch @@ -2,6 +2,5 @@ 202 203_202 193 -192_193 as40_193 as41as42_as41 \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt index ffd149674bd..c2a6bf58eee 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt @@ -6,9 +6,108 @@ package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.util.containers.ContainerUtil +import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion +import org.jetbrains.kotlin.library.KLIB_MANIFEST_FILE_NAME +import org.jetbrains.kotlin.library.KLIB_METADATA_FILE_EXTENSION +import org.jetbrains.kotlin.library.KLIB_MODULE_METADATA_FILE_NAME +import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf +import org.jetbrains.kotlin.library.metadata.parseModuleHeader +import org.jetbrains.kotlin.library.metadata.parsePackageFragment +import org.jetbrains.kotlin.library.readKonanLibraryVersioning +import org.jetbrains.kotlin.metadata.ProtoBuf +import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion +import java.io.IOException +import java.util.* -// FIX ME WHEN BUNCH 192 REMOVED -class KlibLoadingMetadataCache : KlibLoadingMetadataCacheCompat() { + +class KlibLoadingMetadataCache { + + // Use special CacheKey class instead of VirtualFile for cache keys. Certain types of VirtualFiles (for example, obtained from JarFileSystem) + // do not compare path (url) and modification stamp in equals() method. + private data class CacheKey( + val url: String, + val modificationStamp: Long + ) { + constructor(virtualFile: VirtualFile) : this(virtualFile.url, virtualFile.modificationStamp) + } + + // ConcurrentWeakValueHashMap does not allow null values. + private class CacheValue(val value: T?) + + private val packageFragmentCache = ContainerUtil.createConcurrentWeakValueMap>() + private val moduleHeaderCache = ContainerUtil.createConcurrentWeakValueMap>() + private val libraryMetadataVersionCache = ContainerUtil.createConcurrentWeakValueMap>() + + fun getCachedPackageFragment(packageFragmentFile: VirtualFile): ProtoBuf.PackageFragment? { + check(packageFragmentFile.extension == KLIB_METADATA_FILE_EXTENSION) { + "Not a package metadata file: $packageFragmentFile" + } + + return packageFragmentCache.computeIfAbsent( + CacheKey(packageFragmentFile) + ) { + CacheValue(computePackageFragment(packageFragmentFile)) + }.value + } + + fun getCachedModuleHeader(moduleHeaderFile: VirtualFile): KlibMetadataProtoBuf.Header? { + check(moduleHeaderFile.name == KLIB_MODULE_METADATA_FILE_NAME) { + "Not a module header file: $moduleHeaderFile" + } + + return moduleHeaderCache.computeIfAbsent( + CacheKey(moduleHeaderFile) + ) { + CacheValue(computeModuleHeader(moduleHeaderFile)) + }.value + } + + private fun isMetadataCompatible(libraryRoot: VirtualFile): Boolean { + val manifestFile = libraryRoot.findChild(KLIB_MANIFEST_FILE_NAME) ?: return false + + val metadataVersion = libraryMetadataVersionCache.computeIfAbsent( + CacheKey(manifestFile) + ) { + CacheValue(computeLibraryMetadataVersion(manifestFile)) + }.value ?: return false + + return metadataVersion.isCompatible() + } + + private fun computePackageFragment(packageFragmentFile: VirtualFile): ProtoBuf.PackageFragment? { + if (!isMetadataCompatible(packageFragmentFile.parent.parent.parent)) + return null + + return try { + parsePackageFragment(packageFragmentFile.contentsToByteArray(false)) + } catch (_: IOException) { + null + } + } + + private fun computeModuleHeader(moduleHeaderFile: VirtualFile): KlibMetadataProtoBuf.Header? { + if (!isMetadataCompatible(moduleHeaderFile.parent.parent)) + return null + + return try { + parseModuleHeader(moduleHeaderFile.contentsToByteArray(false)) + } catch (_: IOException) { + null + } + } + + private fun computeLibraryMetadataVersion(manifestFile: VirtualFile): KlibMetadataVersion? = try { + val versioning = Properties().apply { manifestFile.inputStream.use { load(it) } }.readKonanLibraryVersioning() + versioning.metadataVersion?.let(BinaryVersion.Companion::parseVersionArray)?.let(::KlibMetadataVersion) + } catch (_: IOException) { + // ignore and cache null value + null + } catch (_: IllegalArgumentException) { + // ignore and cache null value + null + } companion object { @JvmStatic diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCacheCompat.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCacheCompat.kt deleted file mode 100644 index 6527f3e30fe..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCacheCompat.kt +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.klib - -import com.intellij.openapi.vfs.VirtualFile -import com.intellij.util.containers.ContainerUtil.createConcurrentWeakValueMap -import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion -import org.jetbrains.kotlin.library.KLIB_MANIFEST_FILE_NAME -import org.jetbrains.kotlin.library.KLIB_METADATA_FILE_EXTENSION -import org.jetbrains.kotlin.library.KLIB_MODULE_METADATA_FILE_NAME -import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf -import org.jetbrains.kotlin.library.metadata.parseModuleHeader -import org.jetbrains.kotlin.library.metadata.parsePackageFragment -import org.jetbrains.kotlin.library.readKonanLibraryVersioning -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion -import java.io.IOException -import java.util.* - -// FIX ME WHEN BUNCH 192 REMOVED -abstract class KlibLoadingMetadataCacheCompat { - - // Use special CacheKey class instead of VirtualFile for cache keys. Certain types of VirtualFiles (for example, obtained from JarFileSystem) - // do not compare path (url) and modification stamp in equals() method. - private data class CacheKey( - val url: String, - val modificationStamp: Long - ) { - constructor(virtualFile: VirtualFile) : this(virtualFile.url, virtualFile.modificationStamp) - } - - // ConcurrentWeakValueHashMap does not allow null values. - private class CacheValue(val value: T?) - - private val packageFragmentCache = createConcurrentWeakValueMap>() - private val moduleHeaderCache = createConcurrentWeakValueMap>() - private val libraryMetadataVersionCache = createConcurrentWeakValueMap>() - - fun getCachedPackageFragment(packageFragmentFile: VirtualFile): ProtoBuf.PackageFragment? { - check(packageFragmentFile.extension == KLIB_METADATA_FILE_EXTENSION) { - "Not a package metadata file: $packageFragmentFile" - } - - return packageFragmentCache.computeIfAbsent( - CacheKey(packageFragmentFile) - ) { - CacheValue(computePackageFragment(packageFragmentFile)) - }.value - } - - fun getCachedModuleHeader(moduleHeaderFile: VirtualFile): KlibMetadataProtoBuf.Header? { - check(moduleHeaderFile.name == KLIB_MODULE_METADATA_FILE_NAME) { - "Not a module header file: $moduleHeaderFile" - } - - return moduleHeaderCache.computeIfAbsent( - CacheKey(moduleHeaderFile) - ) { - CacheValue(computeModuleHeader(moduleHeaderFile)) - }.value - } - - private fun isMetadataCompatible(libraryRoot: VirtualFile): Boolean { - val manifestFile = libraryRoot.findChild(KLIB_MANIFEST_FILE_NAME) ?: return false - - val metadataVersion = libraryMetadataVersionCache.computeIfAbsent( - CacheKey(manifestFile) - ) { - CacheValue(computeLibraryMetadataVersion(manifestFile)) - }.value ?: return false - - return metadataVersion.isCompatible() - } - - private fun computePackageFragment(packageFragmentFile: VirtualFile): ProtoBuf.PackageFragment? { - if (!isMetadataCompatible(packageFragmentFile.parent.parent.parent)) - return null - - return try { - parsePackageFragment(packageFragmentFile.contentsToByteArray(false)) - } catch (_: IOException) { - null - } - } - - private fun computeModuleHeader(moduleHeaderFile: VirtualFile): KlibMetadataProtoBuf.Header? { - if (!isMetadataCompatible(moduleHeaderFile.parent.parent)) - return null - - return try { - parseModuleHeader(moduleHeaderFile.contentsToByteArray(false)) - } catch (_: IOException) { - null - } - } - - private fun computeLibraryMetadataVersion(manifestFile: VirtualFile): KlibMetadataVersion? = try { - val versioning = Properties().apply { manifestFile.inputStream.use { load(it) } }.readKonanLibraryVersioning() - versioning.metadataVersion?.let(BinaryVersion.Companion::parseVersionArray)?.let(::KlibMetadataVersion) - } catch (_: IOException) { - // ignore and cache null value - null - } catch (_: IllegalArgumentException) { - // ignore and cache null value - null - } -} diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactoryUtils.java similarity index 59% rename from idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java rename to idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactoryUtils.java index 8e8d6cbd7c7..90362920384 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactoryUtils.java @@ -16,31 +16,15 @@ package org.jetbrains.kotlin.idea.core; -import com.intellij.ide.highlighter.ArchiveFileType; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.FileTypeConsumer; -import com.intellij.openapi.fileTypes.FileTypeFactory; -import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.idea.KotlinFileType; -import org.jetbrains.kotlin.idea.klib.KlibMetaFileType; import java.util.Arrays; import java.util.HashSet; import java.util.Set; -import static org.jetbrains.kotlin.library.KotlinLibraryUtilsKt.KLIB_FILE_EXTENSION; - -// FIX ME WHEN BUNCH 192 REMOVED -public class KotlinFileTypeFactory extends FileTypeFactory { +public class KotlinFileTypeFactoryUtils { public final static String[] KOTLIN_EXTENSIONS = new String[] { "kt", "kts" }; private final static FileType[] KOTLIN_FILE_TYPES = new FileType[] { KotlinFileType.INSTANCE }; public final static Set KOTLIN_FILE_TYPES_SET = new HashSet<>(Arrays.asList(KOTLIN_FILE_TYPES)); - - @Override - public void createFileTypes(@NotNull FileTypeConsumer consumer) { - consumer.consume(KotlinFileType.INSTANCE, "kt;kts"); - - consumer.consume(ArchiveFileType.INSTANCE, KLIB_FILE_EXTENSION); - consumer.consume(KlibMetaFileType.INSTANCE, KlibMetaFileType.INSTANCE.getDefaultExtension()); - } } diff --git a/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeABICompatibilityChecker.kt b/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeABICompatibilityChecker.kt index 296c38a3dca..4641e04ca53 100644 --- a/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeABICompatibilityChecker.kt +++ b/idea/idea-gradle-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativeABICompatibilityChecker.kt @@ -32,7 +32,6 @@ import org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanel import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME -// FIX ME WHEN BUNCH 192 REMOVED /** TODO: merge [KotlinNativeABICompatibilityChecker] in the future with [UnsupportedAbiVersionNotificationPanelProvider], KT-34525 */ class KotlinNativeABICompatibilityChecker : StartupActivity { override fun runActivity(project: Project) { diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemImportingTestCase.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemImportingTestCase.java index 17f3ba5c96e..841c1a18a05 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemImportingTestCase.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemImportingTestCase.java @@ -20,15 +20,11 @@ import com.intellij.find.findUsages.FindUsagesHandler; import com.intellij.find.findUsages.FindUsagesManager; import com.intellij.find.findUsages.FindUsagesOptions; import com.intellij.find.impl.FindManagerImpl; -import com.intellij.openapi.application.AccessToken; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.compiler.CompilerPaths; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.externalSystem.importing.ImportSpec; import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder; import com.intellij.openapi.externalSystem.model.DataNode; -import com.intellij.openapi.externalSystem.model.ExternalProjectInfo; import com.intellij.openapi.externalSystem.model.ProjectSystemId; import com.intellij.openapi.externalSystem.model.project.ProjectData; import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId; @@ -37,7 +33,6 @@ import com.intellij.openapi.externalSystem.service.execution.ProgressExecutionMo import com.intellij.openapi.externalSystem.service.notification.ExternalSystemProgressNotificationManager; import com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback; import com.intellij.openapi.externalSystem.service.project.ProjectDataManager; -import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManagerImpl; import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemSettings; import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings; import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; @@ -66,13 +61,11 @@ import com.intellij.packaging.artifacts.ArtifactManager; import com.intellij.psi.PsiElement; import com.intellij.testFramework.IdeaTestUtil; import com.intellij.usageView.UsageInfo; -import com.intellij.util.BooleanFunction; import com.intellij.util.CommonProcessors; import com.intellij.util.Function; import com.intellij.util.PathUtil; import com.intellij.util.containers.ConcurrentWeakKeySoftValueHashMap; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.containers.ContainerUtilRt; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -595,7 +588,7 @@ public abstract class ExternalSystemImportingTestCase extends ExternalSystemTest final Ref> error = Ref.create(); ImportSpec importSpec = createImportSpec(); ExternalProjectRefreshCallback callback = importSpec.getCallback(); - if (callback == null || ExternalSystemTestCaseBunch.isDefaultRefreshCallback(callback)) { + if (callback == null || callback instanceof ImportSpecBuilder.DefaultProjectRefreshCallback) { importSpec = new TestImportSpecBuilder(importSpec) .setCreateEmptyContentRoots(projectSettings.isCreateEmptyContentRootDirectories()) .callback(new ExternalProjectRefreshCallback() { diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCase.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCase.java index 2856f23bc79..db899b12a97 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCase.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCase.java @@ -422,7 +422,17 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase { } private void build(Object[] buildableElements) { - ExternalSystemTestCaseBunch.build(buildableElements, myProject); + Promise promise; + if (buildableElements instanceof Module[]) { + promise = ProjectTaskManager.getInstance(myProject).build((Module[]) buildableElements); + } + else if (buildableElements instanceof Artifact[]) { + promise = ProjectTaskManager.getInstance(myProject).build((Artifact[]) buildableElements); + } + else { + throw new AssertionError("Unsupported buildableElements: " + Arrays.toString(buildableElements)); + } + EdtTestUtil.runInEdtAndWait(() -> PlatformTestUtil.waitForPromise(promise)); } private void compile(@NotNull CompileScope scope) { diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCaseBunch.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCaseBunch.java deleted file mode 100644 index 58feb2fa574..00000000000 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/ExternalSystemTestCaseBunch.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.codeInsight.gradle; - -import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; -import com.intellij.packaging.artifacts.Artifact; -import com.intellij.task.ProjectTaskManager; -import com.intellij.testFramework.EdtTestUtil; -import com.intellij.testFramework.PlatformTestUtil; -import org.jetbrains.concurrency.Promise; -import java.util.Arrays; - -//FIX ME WHEN BUNCH 192 REMOVED -class ExternalSystemTestCaseBunch { - - protected static boolean isDefaultRefreshCallback(Object callback) { - return callback instanceof ImportSpecBuilder.DefaultProjectRefreshCallback; - } - - protected static void build(Object[] buildableElements, Project myProject) { - Promise promise; - if (buildableElements instanceof Module[]) { - promise = ProjectTaskManager.getInstance(myProject).build((Module[])buildableElements); - } - else if (buildableElements instanceof Artifact[]) { - promise = ProjectTaskManager.getInstance(myProject).build((Artifact[])buildableElements); - } - else { - throw new AssertionError("Unsupported buildableElements: " + Arrays.toString(buildableElements)); - } - EdtTestUtil.runInEdtAndWait(() -> PlatformTestUtil.waitForPromise(promise)); - } - -} \ No newline at end of file diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.kt index fa125849959..7a9bd1e4511 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/JvmPluginStartupComponent.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.idea.ThreadTrackerPatcherForTeamCityTesting.patchThr import org.jetbrains.kotlin.idea.debugger.filter.addKotlinStdlibDebugFilterIfNeeded import org.jetbrains.kotlin.idea.util.application.isUnitTestMode -// FIX ME WHEN BUNCH 192 REMOVED + class JvmPluginStartupActivity : StartupActivity { override fun runActivity(project: Project) { if (isUnitTestMode()) { diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt index 78e79799f0d..8f463239fee 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/compiler/KotlinCompilerManager.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.js.JavaScript import java.io.PrintStream import java.io.PrintWriter -// FIX ME WHEN BUNCH 192 REMOVED + class KotlinCompilerStartupActivity : StartupActivity { // Extending PluginException ensures that Exception Analyzer recognizes this as a Kotlin exception private class KotlinCompilerException(private val text: String) : diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchFileModuleInfoProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchFileModuleInfoProvider.kt index 9370f6007eb..b79d3ab74cf 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchFileModuleInfoProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/scratch/ScratchFileModuleInfoProvider.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.idea.util.projectStructure.getModule import org.jetbrains.kotlin.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_SUFFIX import org.jetbrains.kotlin.psi.KtFile -// FIX ME WHEN BUNCH 192 REMOVED + class ScratchFileModuleInfoProvider : StartupActivity { private val LOG = Logger.getInstance(this.javaClass) diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinImporterComponentCompat.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinImporterComponentCompat.kt deleted file mode 100644 index e4914345e2a..00000000000 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinImporterComponentCompat.kt +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.maven - -import com.intellij.openapi.module.Module -import org.jetbrains.kotlin.idea.util.application.getServiceSafe - -// FIX ME WHEN BUNCH 192 REMOVED -internal val Module.kotlinImporterComponent: KotlinImporterComponent - get() = this.getServiceSafe() diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt index 3351f50f308..c6339b35d9e 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/KotlinMavenImporter.kt @@ -35,6 +35,7 @@ import org.jetbrains.kotlin.idea.framework.KotlinSdkType import org.jetbrains.kotlin.idea.framework.detectLibraryKind import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator import org.jetbrains.kotlin.idea.platform.tooling +import org.jetbrains.kotlin.idea.util.application.getServiceSafe import org.jetbrains.kotlin.platform.IdePlatformKind import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind @@ -421,4 +422,7 @@ class KotlinImporterComponent : PersistentStateComponent = KotlinFileTypeFactory.KOTLIN_FILE_TYPES_SET + override fun getAcceptedFileTypes(): Set = KotlinFileTypeFactoryUtils.KOTLIN_FILE_TYPES_SET override fun evaluateCondition( context: EvaluationContext, diff --git a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/ToggleKotlinVariablesView.kt b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/ToggleKotlinVariablesView.kt index c19ce4225a1..743e2c688b4 100644 --- a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/ToggleKotlinVariablesView.kt +++ b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/ToggleKotlinVariablesView.kt @@ -11,7 +11,7 @@ import com.intellij.openapi.actionSystem.ToggleAction import com.intellij.openapi.components.ServiceManager import com.intellij.xdebugger.XDebugSession import com.intellij.xdebugger.impl.XDebuggerUtilImpl -import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactory +import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactoryUtils class ToggleKotlinVariablesState { companion object { @@ -40,7 +40,7 @@ class ToggleKotlinVariablesView : ToggleAction() { private fun XDebugSession.isInKotlinFile(): Boolean { val fileExtension = currentPosition?.file?.extension ?: return false - return fileExtension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS + return fileExtension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS } override fun isSelected(e: AnActionEvent) = kotlinVariableViewService.kotlinVariableView diff --git a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt index ef00de31d80..6a7c95dc4d2 100644 --- a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt +++ b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/debuggerUtil.kt @@ -14,13 +14,12 @@ import com.intellij.debugger.impl.DebuggerContextImpl import com.intellij.debugger.jdi.StackFrameProxyImpl import com.intellij.psi.PsiElement import com.sun.jdi.* -import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.codegen.binding.CodegenBinding.asmTypeForAnonymousClass import org.jetbrains.kotlin.codegen.coroutines.DO_RESUME_METHOD_NAME import org.jetbrains.kotlin.codegen.coroutines.INVOKE_SUSPEND_METHOD_NAME import org.jetbrains.kotlin.codegen.coroutines.continuationAsmTypes import org.jetbrains.kotlin.codegen.inline.KOTLIN_STRATA_NAME -import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactory +import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactoryUtils import org.jetbrains.kotlin.idea.core.util.CodeInsightUtils import org.jetbrains.kotlin.idea.core.util.getLineEndOffset import org.jetbrains.kotlin.idea.core.util.getLineStartOffset @@ -31,7 +30,6 @@ import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.inline.InlineUtil -import org.jetbrains.org.objectweb.asm.Type import java.util.* fun Location.isInKotlinSources(): Boolean { @@ -40,7 +38,7 @@ fun Location.isInKotlinSources(): Boolean { fun ReferenceType.isInKotlinSources(): Boolean { val fileExtension = safeSourceName()?.substringAfterLast('.')?.toLowerCase() ?: "" - return fileExtension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS || containsKotlinStrata() + return fileExtension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS || containsKotlinStrata() } fun ReferenceType.containsKotlinStrata() = availableStrata().contains(KOTLIN_STRATA_NAME) diff --git a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt index 9aa0720d6cd..662728e3725 100644 --- a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt +++ b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/DebuggerUtils.kt @@ -25,7 +25,7 @@ import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.asJava.finder.JavaElementFinder import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.PropertyDescriptor -import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactory +import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactoryUtils import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.resolve.ResolutionFacade @@ -144,7 +144,7 @@ object DebuggerUtils { fun isKotlinSourceFile(fileName: String): Boolean { val extension = FileUtilRt.getExtension(fileName).toLowerCase() - return extension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS + return extension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS } private fun analyzeElementWithInline( diff --git a/idea/resources-descriptors/META-INF/plugin.xml b/idea/resources-descriptors/META-INF/plugin.xml index 2b87ae67bf2..fb3a890b7f0 100644 --- a/idea/resources-descriptors/META-INF/plugin.xml +++ b/idea/resources-descriptors/META-INF/plugin.xml @@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. org.jetbrains.plugins.gradle org.jetbrains.plugins.gradle org.intellij.groovy - org.jetbrains.idea.maven org.jetbrains.idea.maven TestNG-J Coverage @@ -100,7 +99,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - diff --git a/idea/resources-descriptors/META-INF/plugin.xml.193 b/idea/resources-descriptors/META-INF/plugin.xml.193 index f1f137d7397..07bb9d772e5 100644 --- a/idea/resources-descriptors/META-INF/plugin.xml.193 +++ b/idea/resources-descriptors/META-INF/plugin.xml.193 @@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. org.jetbrains.plugins.gradle org.jetbrains.plugins.gradle org.intellij.groovy - org.jetbrains.idea.maven org.jetbrains.idea.maven TestNG-J Coverage @@ -111,7 +110,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - diff --git a/idea/resources-descriptors/META-INF/plugin.xml.202 b/idea/resources-descriptors/META-INF/plugin.xml.202 index 53a65d11bda..b5bd281abe2 100644 --- a/idea/resources-descriptors/META-INF/plugin.xml.202 +++ b/idea/resources-descriptors/META-INF/plugin.xml.202 @@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. org.jetbrains.plugins.gradle org.jetbrains.plugins.gradle org.intellij.groovy - org.jetbrains.idea.maven org.jetbrains.idea.maven TestNG-J Coverage @@ -100,7 +99,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - diff --git a/idea/resources-descriptors/META-INF/plugin.xml.as40 b/idea/resources-descriptors/META-INF/plugin.xml.as40 index 82c2491d109..039d201a5f1 100644 --- a/idea/resources-descriptors/META-INF/plugin.xml.as40 +++ b/idea/resources-descriptors/META-INF/plugin.xml.as40 @@ -45,7 +45,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. org.jetbrains.plugins.gradle org.jetbrains.plugins.gradle org.intellij.groovy - org.jetbrains.idea.maven org.jetbrains.idea.maven TestNG-J Coverage @@ -110,7 +109,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - diff --git a/idea/resources-descriptors/META-INF/plugin.xml.as41 b/idea/resources-descriptors/META-INF/plugin.xml.as41 index 0a9b45e7746..ae9677ffd99 100644 --- a/idea/resources-descriptors/META-INF/plugin.xml.as41 +++ b/idea/resources-descriptors/META-INF/plugin.xml.as41 @@ -45,7 +45,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. org.jetbrains.plugins.gradle org.jetbrains.plugins.gradle org.intellij.groovy - org.jetbrains.idea.maven org.jetbrains.idea.maven TestNG-J Coverage @@ -99,7 +98,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. - diff --git a/idea/resources/META-INF/jvm-common.xml b/idea/resources/META-INF/jvm-common.xml index 912cc002c22..92bd7a71ceb 100644 --- a/idea/resources/META-INF/jvm-common.xml +++ b/idea/resources/META-INF/jvm-common.xml @@ -105,6 +105,10 @@ + + + + diff --git a/idea/resources/META-INF/jvm.xml b/idea/resources/META-INF/jvm.xml index a320eca80d8..ec2ca5116fc 100644 --- a/idea/resources/META-INF/jvm.xml +++ b/idea/resources/META-INF/jvm.xml @@ -6,9 +6,6 @@ - - - diff --git a/idea/resources/META-INF/jvm.xml.193 b/idea/resources/META-INF/jvm.xml.193 index dac175407f7..c2f9fde42c4 100644 --- a/idea/resources/META-INF/jvm.xml.193 +++ b/idea/resources/META-INF/jvm.xml.193 @@ -2,9 +2,6 @@ - - - diff --git a/idea/resources/META-INF/maven-common.xml b/idea/resources/META-INF/maven-common.xml deleted file mode 100644 index 7238ecfc87c..00000000000 --- a/idea/resources/META-INF/maven-common.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToBuild - Kotlin - - - org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToExecutionIntention - Kotlin - - - - - - - - - - - - - - - - - - diff --git a/idea/resources/META-INF/maven.xml b/idea/resources/META-INF/maven.xml index d9868fc0540..0532149396b 100644 --- a/idea/resources/META-INF/maven.xml +++ b/idea/resources/META-INF/maven.xml @@ -1,7 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToBuild + Kotlin + + + org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToExecutionIntention + Kotlin + + + + + + + + + + + + + + + + + diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml index e84f5118026..43a768781dc 100644 --- a/idea/resources/META-INF/plugin-common.xml +++ b/idea/resources/META-INF/plugin-common.xml @@ -645,6 +645,8 @@ + + diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinBuiltInFileTypeFactory.kt b/idea/src/org/jetbrains/kotlin/idea/KotlinBuiltInFileTypeFactory.kt deleted file mode 100644 index 47b1f77160d..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/KotlinBuiltInFileTypeFactory.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea - -import com.intellij.openapi.fileTypes.FileTypeConsumer -import com.intellij.openapi.fileTypes.FileTypeFactory -import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType -import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment - -// FIX ME WHEN BUNCH 192 REMOVED -class KotlinBuiltInFileTypeFactory : FileTypeFactory() { - override fun createFileTypes(consumer: FileTypeConsumer) { - consumer.consume(KotlinBuiltInFileType, KotlinBuiltInFileType.defaultExtension) - consumer.consume(KotlinBuiltInFileType, MetadataPackageFragment.METADATA_FILE_EXTENSION) - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinJavaScriptMetaFileTypeFactory.kt b/idea/src/org/jetbrains/kotlin/idea/KotlinJavaScriptMetaFileTypeFactory.kt deleted file mode 100644 index 939e59bcc2d..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/KotlinJavaScriptMetaFileTypeFactory.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea - -import com.intellij.openapi.fileTypes.FileTypeConsumer -import com.intellij.openapi.fileTypes.FileTypeFactory -import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType - -// FIX ME WHEN BUNCH 192 REMOVED -class KotlinJavaScriptMetaFileTypeFactory : FileTypeFactory() { - override fun createFileTypes(consumer: FileTypeConsumer) { - consumer.consume(KotlinJavaScriptMetaFileType, KotlinJavaScriptMetaFileType.defaultExtension) - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/KotlinModuleFileFactory.java b/idea/src/org/jetbrains/kotlin/idea/KotlinModuleFileFactory.java deleted file mode 100644 index 4e4267b8e35..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/KotlinModuleFileFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.idea; - -import com.intellij.openapi.fileTypes.FileTypeConsumer; -import com.intellij.openapi.fileTypes.FileTypeFactory; -import org.jetbrains.annotations.NotNull; - - -// FIX ME WHEN BUNCH 192 REMOVED -public class KotlinModuleFileFactory extends FileTypeFactory { - @Override - public void createFileTypes(@NotNull FileTypeConsumer consumer) { - consumer.consume(KotlinModuleFileType.INSTANCE, KotlinModuleFileType.EXTENSION); - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt index 4feff42ede4..95d63efab9a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteReferenceProcessor.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.codeInsight import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.editorActions.CopyPastePostProcessor import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.application.ReadAction import com.intellij.openapi.diagnostic.ControlFlowException import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.editor.Editor @@ -22,7 +23,9 @@ import com.intellij.openapi.util.TextRange import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.* import com.intellij.psi.util.PsiTreeUtil +import com.intellij.util.concurrency.AppExecutorUtil import org.jetbrains.annotations.TestOnly +import org.jetbrains.concurrency.CancellablePromise import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor @@ -50,7 +53,6 @@ import org.jetbrains.kotlin.idea.util.getSourceRoot import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.kdoc.psi.api.KDocElement import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_EXT import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.resolve.BindingContext @@ -479,6 +481,15 @@ class KotlinCopyPasteReferenceProcessor : CopyPastePostProcessor submitNonBlocking(project: Project, indicator: ProgressIndicator, block: () -> T): CancellablePromise = + ReadAction.nonBlocking { + return@nonBlocking block() + } + .withDocumentsCommitted(project) + .cancelWith(indicator) + .expireWith(project) + .submit(AppExecutorUtil.getAppExecutorService()) + private fun buildDummySourceScope( sourcePkgName: String, imports: List, diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteUtil.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/ReviewAddedImports.kt similarity index 87% rename from idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteUtil.kt rename to idea/src/org/jetbrains/kotlin/idea/codeInsight/ReviewAddedImports.kt index 27bac9b3777..82b437021f7 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinCopyPasteUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/ReviewAddedImports.kt @@ -11,16 +11,12 @@ import com.intellij.codeInsight.hint.HintManagerImpl import com.intellij.codeInsight.hint.HintUtil import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ModalityState -import com.intellij.openapi.application.ReadAction.nonBlocking import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.editor.Editor -import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.project.Project import com.intellij.ui.LightweightHint import com.intellij.util.ArrayUtil -import com.intellij.util.concurrency.AppExecutorUtil import org.jetbrains.annotations.TestOnly -import org.jetbrains.concurrency.CancellablePromise import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.imports.KotlinImportOptimizer import org.jetbrains.kotlin.name.Name @@ -30,7 +26,7 @@ import java.util.* import javax.swing.event.HyperlinkEvent import javax.swing.event.HyperlinkListener -// FIX ME WHEN BUNCH 192 REMOVED + object ReviewAddedImports { @get:TestOnly var importsToBeReviewed: Collection = emptyList() @@ -109,12 +105,3 @@ object ReviewAddedImports { }) } } - -internal fun submitNonBlocking(project: Project, indicator: ProgressIndicator, block: () -> T): CancellablePromise = - nonBlocking { - return@nonBlocking block() - } - .withDocumentsCommitted(project) - .cancelWith(indicator) - .expireWith(project) - .submit(AppExecutorUtil.getAppExecutorService()) \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt deleted file mode 100644 index c58fd8e50bd..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionCompat.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -@file:Suppress("UnstableApiUsage") - -package org.jetbrains.kotlin.idea.codeInsight.codevision - -import com.intellij.codeInsight.hints.ChangeListener -import com.intellij.codeInsight.hints.ImmediateConfigurable -import com.intellij.codeInsight.hints.settings.InlayHintsConfigurable -import com.intellij.internal.statistic.eventLog.FeatureUsageData -import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger -import com.intellij.openapi.project.Project -import com.intellij.ui.layout.panel -import javax.swing.JPanel - - -// FIX ME WHEN BUNCH 192 REMOVED -typealias CodeVisionInlayHintsConfigurable = InlayHintsConfigurable - -fun logUsageStatistics(project: Project?, groupId: String, eventId: String) = - FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId) - -fun logUsageStatistics(project: Project?, groupId: String, eventId: String, data: FeatureUsageData) = - FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId, data) - -fun createImmediateConfigurable(): ImmediateConfigurable { - return object : ImmediateConfigurable { - override fun createComponent(listener: ChangeListener): JPanel = panel {} - - override val cases: List = emptyList() - - override val mainCheckboxText: String = "" - } -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionLimitedHint.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionLimitedHint.kt index 7ce248daf60..138dd8ab6e2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionLimitedHint.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionLimitedHint.kt @@ -5,9 +5,12 @@ package org.jetbrains.kotlin.idea.codeInsight.codevision +import com.intellij.codeInsight.hints.settings.InlayHintsConfigurable import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction import com.intellij.internal.statistic.eventLog.FeatureUsageData +import com.intellij.internal.statistic.service.fus.collectors.FUCounterUsageLogger import com.intellij.openapi.editor.Editor +import com.intellij.openapi.project.Project import com.intellij.psi.PsiElement import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.highlighter.markers.OVERRIDDEN_FUNCTION @@ -126,6 +129,12 @@ class SettingsHint : KotlinCodeVisionHint(SETTINGS_FORMAT) { override fun onClick(editor: Editor, element: PsiElement, event: MouseEvent?) { val project = element.project logUsageStatistics(project, FUS_GROUP_ID, SETTING_CLICKED_EVENT_ID) - CodeVisionInlayHintsConfigurable.showSettingsDialogForLanguage(project, element.language) + InlayHintsConfigurable.showSettingsDialogForLanguage(project, element.language) } -} \ No newline at end of file +} + +fun logUsageStatistics(project: Project?, groupId: String, eventId: String) = + FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId) + +fun logUsageStatistics(project: Project?, groupId: String, eventId: String, data: FeatureUsageData) = + FUCounterUsageLogger.getInstance().logEvent(project, groupId, eventId, data) \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt index ea6c3f85c89..d23541b18f0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProvider.kt @@ -10,8 +10,10 @@ import com.intellij.lang.Language import com.intellij.openapi.editor.Editor import com.intellij.openapi.util.registry.Registry import com.intellij.psi.PsiFile +import com.intellij.ui.layout.panel import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinLanguage +import javax.swing.JPanel @Suppress("UnstableApiUsage") class KotlinCodeVisionProvider : InlayHintsProvider { @@ -29,7 +31,13 @@ class KotlinCodeVisionProvider : InlayHintsProvider { override fun isLanguageSupported(language: Language): Boolean = language is KotlinLanguage - override fun createConfigurable(settings: NoSettings): ImmediateConfigurable = createImmediateConfigurable() + override fun createConfigurable(settings: NoSettings): ImmediateConfigurable = object : ImmediateConfigurable { + override fun createComponent(listener: ChangeListener): JPanel = panel {} + + override val cases: List = emptyList() + + override val mainCheckboxText: String = "" + } override fun createSettings(): NoSettings = NoSettings() diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinUpdatePluginComponent.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinUpdatePluginComponent.kt index 592e255c2e4..86e0c4016dc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinUpdatePluginComponent.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinUpdatePluginComponent.kt @@ -32,7 +32,6 @@ import java.io.File * Component forces update for built-in libraries in plugin directory. They are ignored because of * com.intellij.util.indexing.FileBasedIndex.isUnderConfigOrSystem() */ -// FIX ME WHEN BUNCH 192 REMOVED class KotlinUpdatePluginStartupActivity : StartupActivity { override fun runActivity(project: Project) { diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt index 2c26b417088..a5fc2e68565 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.application.PathMacros import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project +import com.intellij.openapi.project.ex.ProjectManagerEx import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.io.FileUtil @@ -110,7 +111,7 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() { } override fun doCreateProject(projectFile: Path): Project { - return loadProjectCompat(projectFile) + return (ProjectManagerEx.getInstanceEx()).loadProject(projectFile) } private val projectName: String diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt.203 b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt.203 index 5efbf4bb50c..1b033c91798 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt.203 +++ b/idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt.203 @@ -10,6 +10,7 @@ import com.intellij.openapi.application.PathMacros import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.project.Project +import com.intellij.openapi.project.ex.ProjectManagerEx import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.io.FileUtil @@ -113,7 +114,7 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() { override fun doCreateAndOpenProject(): Project { val projectFile = getProjectDirOrFile(isCreateDirectoryBasedProject) - return loadProjectCompat(projectFile) + return (ProjectManagerEx.getInstanceEx()).loadProject(projectFile) } private val projectName: String diff --git a/idea/tests/org/jetbrains/kotlin/idea/configuration/compat.kt b/idea/tests/org/jetbrains/kotlin/idea/configuration/compat.kt deleted file mode 100644 index 4131e93814d..00000000000 --- a/idea/tests/org/jetbrains/kotlin/idea/configuration/compat.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.configuration - -import com.intellij.openapi.project.Project -import com.intellij.openapi.project.ex.ProjectManagerEx -import java.nio.file.Path - -// FIX ME WHEN BUNCH 192 REMOVED -internal fun loadProjectCompat(projectFile: Path): Project { - return (ProjectManagerEx.getInstanceEx()).loadProject(projectFile) -} \ No newline at end of file