Refactor and fix files previously affected by 192 patchset (KTI-315)

This commit is contained in:
Yunir Salimzyanov
2020-08-17 10:14:06 +03:00
parent 42da9e62db
commit 70cda1b113
46 changed files with 301 additions and 551 deletions
-1
View File
@@ -2,6 +2,5 @@
202 202
203_202 203_202
193 193
192_193
as40_193 as40_193
as41as42_as41 as41as42_as41
@@ -6,9 +6,108 @@
package org.jetbrains.kotlin.idea.klib package org.jetbrains.kotlin.idea.klib
import com.intellij.openapi.application.ApplicationManager 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<T : Any>(val value: T?)
private val packageFragmentCache = ContainerUtil.createConcurrentWeakValueMap<CacheKey, CacheValue<ProtoBuf.PackageFragment>>()
private val moduleHeaderCache = ContainerUtil.createConcurrentWeakValueMap<CacheKey, CacheValue<KlibMetadataProtoBuf.Header>>()
private val libraryMetadataVersionCache = ContainerUtil.createConcurrentWeakValueMap<CacheKey, CacheValue<KlibMetadataVersion>>()
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 { companion object {
@JvmStatic @JvmStatic
@@ -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<T : Any>(val value: T?)
private val packageFragmentCache = createConcurrentWeakValueMap<CacheKey, CacheValue<ProtoBuf.PackageFragment>>()
private val moduleHeaderCache = createConcurrentWeakValueMap<CacheKey, CacheValue<KlibMetadataProtoBuf.Header>>()
private val libraryMetadataVersionCache = createConcurrentWeakValueMap<CacheKey, CacheValue<KlibMetadataVersion>>()
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
}
}
@@ -16,31 +16,15 @@
package org.jetbrains.kotlin.idea.core; package org.jetbrains.kotlin.idea.core;
import com.intellij.ide.highlighter.ArchiveFileType;
import com.intellij.openapi.fileTypes.FileType; 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.KotlinFileType;
import org.jetbrains.kotlin.idea.klib.KlibMetaFileType;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import static org.jetbrains.kotlin.library.KotlinLibraryUtilsKt.KLIB_FILE_EXTENSION; public class KotlinFileTypeFactoryUtils {
// FIX ME WHEN BUNCH 192 REMOVED
public class KotlinFileTypeFactory extends FileTypeFactory {
public final static String[] KOTLIN_EXTENSIONS = new String[] { "kt", "kts" }; public final static String[] KOTLIN_EXTENSIONS = new String[] { "kt", "kts" };
private final static FileType[] KOTLIN_FILE_TYPES = new FileType[] { KotlinFileType.INSTANCE }; private final static FileType[] KOTLIN_FILE_TYPES = new FileType[] { KotlinFileType.INSTANCE };
public final static Set<FileType> KOTLIN_FILE_TYPES_SET = new HashSet<>(Arrays.asList(KOTLIN_FILE_TYPES)); public final static Set<FileType> 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());
}
} }
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.idea.versions.UnsupportedAbiVersionNotificationPanel
import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion import org.jetbrains.kotlin.idea.versions.bundledRuntimeVersion
import org.jetbrains.kotlin.konan.library.KONAN_STDLIB_NAME 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 */ /** TODO: merge [KotlinNativeABICompatibilityChecker] in the future with [UnsupportedAbiVersionNotificationPanelProvider], KT-34525 */
class KotlinNativeABICompatibilityChecker : StartupActivity { class KotlinNativeABICompatibilityChecker : StartupActivity {
override fun runActivity(project: Project) { override fun runActivity(project: Project) {
@@ -20,15 +20,11 @@ import com.intellij.find.findUsages.FindUsagesHandler;
import com.intellij.find.findUsages.FindUsagesManager; import com.intellij.find.findUsages.FindUsagesManager;
import com.intellij.find.findUsages.FindUsagesOptions; import com.intellij.find.findUsages.FindUsagesOptions;
import com.intellij.find.impl.FindManagerImpl; 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.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.importing.ImportSpec; import com.intellij.openapi.externalSystem.importing.ImportSpec;
import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder; import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder;
import com.intellij.openapi.externalSystem.model.DataNode; 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.ProjectSystemId;
import com.intellij.openapi.externalSystem.model.project.ProjectData; import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId; 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.notification.ExternalSystemProgressNotificationManager;
import com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback; import com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback;
import com.intellij.openapi.externalSystem.service.project.ProjectDataManager; 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.AbstractExternalSystemSettings;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings; import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; 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.psi.PsiElement;
import com.intellij.testFramework.IdeaTestUtil; import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageInfo;
import com.intellij.util.BooleanFunction;
import com.intellij.util.CommonProcessors; import com.intellij.util.CommonProcessors;
import com.intellij.util.Function; import com.intellij.util.Function;
import com.intellij.util.PathUtil; import com.intellij.util.PathUtil;
import com.intellij.util.containers.ConcurrentWeakKeySoftValueHashMap; import com.intellij.util.containers.ConcurrentWeakKeySoftValueHashMap;
import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.ContainerUtilRt;
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -595,7 +588,7 @@ public abstract class ExternalSystemImportingTestCase extends ExternalSystemTest
final Ref<Couple<String>> error = Ref.create(); final Ref<Couple<String>> error = Ref.create();
ImportSpec importSpec = createImportSpec(); ImportSpec importSpec = createImportSpec();
ExternalProjectRefreshCallback callback = importSpec.getCallback(); ExternalProjectRefreshCallback callback = importSpec.getCallback();
if (callback == null || ExternalSystemTestCaseBunch.isDefaultRefreshCallback(callback)) { if (callback == null || callback instanceof ImportSpecBuilder.DefaultProjectRefreshCallback) {
importSpec = new TestImportSpecBuilder(importSpec) importSpec = new TestImportSpecBuilder(importSpec)
.setCreateEmptyContentRoots(projectSettings.isCreateEmptyContentRootDirectories()) .setCreateEmptyContentRoots(projectSettings.isCreateEmptyContentRootDirectories())
.callback(new ExternalProjectRefreshCallback() { .callback(new ExternalProjectRefreshCallback() {
@@ -422,7 +422,17 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
} }
private void build(Object[] buildableElements) { private void build(Object[] buildableElements) {
ExternalSystemTestCaseBunch.build(buildableElements, myProject); Promise<ProjectTaskManager.Result> 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) { private void compile(@NotNull CompileScope scope) {
@@ -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<ProjectTaskManager.Result> 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));
}
}
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.idea.ThreadTrackerPatcherForTeamCityTesting.patchThr
import org.jetbrains.kotlin.idea.debugger.filter.addKotlinStdlibDebugFilterIfNeeded import org.jetbrains.kotlin.idea.debugger.filter.addKotlinStdlibDebugFilterIfNeeded
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
// FIX ME WHEN BUNCH 192 REMOVED
class JvmPluginStartupActivity : StartupActivity { class JvmPluginStartupActivity : StartupActivity {
override fun runActivity(project: Project) { override fun runActivity(project: Project) {
if (isUnitTestMode()) { if (isUnitTestMode()) {
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.js.JavaScript
import java.io.PrintStream import java.io.PrintStream
import java.io.PrintWriter import java.io.PrintWriter
// FIX ME WHEN BUNCH 192 REMOVED
class KotlinCompilerStartupActivity : StartupActivity { class KotlinCompilerStartupActivity : StartupActivity {
// Extending PluginException ensures that Exception Analyzer recognizes this as a Kotlin exception // Extending PluginException ensures that Exception Analyzer recognizes this as a Kotlin exception
private class KotlinCompilerException(private val text: String) : private class KotlinCompilerException(private val text: String) :
@@ -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.parsing.KotlinParserDefinition.Companion.STD_SCRIPT_SUFFIX
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
// FIX ME WHEN BUNCH 192 REMOVED
class ScratchFileModuleInfoProvider : StartupActivity { class ScratchFileModuleInfoProvider : StartupActivity {
private val LOG = Logger.getInstance(this.javaClass) private val LOG = Logger.getInstance(this.javaClass)
@@ -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()
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.idea.framework.KotlinSdkType
import org.jetbrains.kotlin.idea.framework.detectLibraryKind import org.jetbrains.kotlin.idea.framework.detectLibraryKind
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
import org.jetbrains.kotlin.idea.platform.tooling 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.IdePlatformKind
import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind import org.jetbrains.kotlin.platform.impl.CommonIdePlatformKind
@@ -421,4 +422,7 @@ class KotlinImporterComponent : PersistentStateComponent<KotlinImporterComponent
override fun getState(): State { override fun getState(): State {
return State(addedSources.sorted()) return State(addedSources.sorted())
} }
} }
internal val Module.kotlinImporterComponent: KotlinImporterComponent
get() = this.getServiceSafe()
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.idea.configuration.KotlinMigrationProjectService
import org.jetbrains.kotlin.idea.configuration.notifyOutdatedBundledCompilerIfNecessary import org.jetbrains.kotlin.idea.configuration.notifyOutdatedBundledCompilerIfNecessary
import org.jetbrains.kotlin.idea.util.ProgressIndicatorUtils.runUnderDisposeAwareIndicator import org.jetbrains.kotlin.idea.util.ProgressIndicatorUtils.runUnderDisposeAwareIndicator
// FIX ME WHEN BUNCH 192 REMOVED
class MavenImportListener : StartupActivity { class MavenImportListener : StartupActivity {
override fun runActivity(project: Project) { override fun runActivity(project: Project) {
@@ -37,6 +37,4 @@ class MavenImportListener : StartupActivity {
} }
}) })
} }
} }
@@ -1,16 +0,0 @@
/*
* Copyright 2010-2018 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.ide.konan
import com.intellij.openapi.fileTypes.FileTypeConsumer
import com.intellij.openapi.fileTypes.FileTypeFactory
// FIX ME WHEN BUNCH 192 REMOVED
class KotlinNativeFileTypeFactory : FileTypeFactory() {
override fun createFileTypes(consumer: FileTypeConsumer) {
consumer.consume(NativeDefinitionsFileType, KOTLIN_NATIVE_DEFINITIONS_FILE_EXTENSION)
}
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.idea.test package org.jetbrains.kotlin.idea.test
import com.intellij.application.options.CodeStyle import com.intellij.application.options.CodeStyle
import com.intellij.codeInsight.daemon.impl.EditorTracker
import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.actionSystem.ActionPlaces import com.intellij.openapi.actionSystem.ActionPlaces
import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.AnActionEvent
@@ -91,7 +92,7 @@ abstract class KotlinLightCodeInsightFixtureTestCase : KotlinLightCodeInsightFix
runPostStartupActivitiesOnce(project) runPostStartupActivitiesOnce(project)
VfsRootAccess.allowRootAccess(project, KotlinTestUtils.getHomeDirectory()) VfsRootAccess.allowRootAccess(project, KotlinTestUtils.getHomeDirectory())
editorTrackerProjectOpened(project) EditorTracker.getInstance(project)
if (!isFirPlugin) { if (!isFirPlugin) {
invalidateLibraryCache(project) invalidateLibraryCache(project)
@@ -5,16 +5,10 @@
package org.jetbrains.kotlin.idea.test package org.jetbrains.kotlin.idea.test
import com.intellij.codeInsight.daemon.impl.EditorTracker
import com.intellij.ide.startup.impl.StartupManagerImpl import com.intellij.ide.startup.impl.StartupManagerImpl
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.StartupManager import com.intellij.openapi.startup.StartupManager
// FIX ME WHEN BUNCH 192 REMOVED
fun editorTrackerProjectOpened(project: Project) {
EditorTracker.getInstance(project)
}
// FIX ME WHEN BUNCH 193 REMOVED // FIX ME WHEN BUNCH 193 REMOVED
fun runPostStartupActivitiesOnce(project: Project) { fun runPostStartupActivitiesOnce(project: Project) {
(StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivitiesRegisteredDynamically() (StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivitiesRegisteredDynamically()
@@ -5,16 +5,10 @@
package org.jetbrains.kotlin.idea.test package org.jetbrains.kotlin.idea.test
import com.intellij.codeInsight.daemon.impl.EditorTracker
import com.intellij.ide.startup.impl.StartupManagerImpl import com.intellij.ide.startup.impl.StartupManagerImpl
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.StartupManager import com.intellij.openapi.startup.StartupManager
// FIX ME WHEN BUNCH 192 REMOVED
fun editorTrackerProjectOpened(project: Project) {
EditorTracker.getInstance(project)
}
// FIX ME WHEN BUNCH 193 REMOVED // FIX ME WHEN BUNCH 193 REMOVED
fun runPostStartupActivitiesOnce(project: Project) { fun runPostStartupActivitiesOnce(project: Project) {
(StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivities() (StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivities()
@@ -5,15 +5,7 @@
package org.jetbrains.kotlin.idea.test package org.jetbrains.kotlin.idea.test
import com.intellij.codeInsight.daemon.impl.EditorTracker
import com.intellij.ide.startup.impl.StartupManagerImpl
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.startup.StartupManager
// FIX ME WHEN BUNCH 192 REMOVED
fun editorTrackerProjectOpened(project: Project) {
EditorTracker.getInstance(project)
}
// FIX ME WHEN BUNCH 193 REMOVED // FIX ME WHEN BUNCH 193 REMOVED
fun runPostStartupActivitiesOnce(project: Project) { fun runPostStartupActivitiesOnce(project: Project) {
@@ -35,7 +35,7 @@ import com.sun.jdi.ReferenceType
import com.sun.jdi.request.ClassPrepareRequest import com.sun.jdi.request.ClassPrepareRequest
import org.jetbrains.kotlin.codegen.inline.KOTLIN_STRATA_NAME import org.jetbrains.kotlin.codegen.inline.KOTLIN_STRATA_NAME
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
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.CodeInsightUtils
import org.jetbrains.kotlin.idea.core.util.getLineStartOffset import org.jetbrains.kotlin.idea.core.util.getLineStartOffset
import org.jetbrains.kotlin.idea.debugger.breakpoints.getLambdasAtLineIfAny import org.jetbrains.kotlin.idea.debugger.breakpoints.getLambdasAtLineIfAny
@@ -71,7 +71,7 @@ class KotlinPositionManager(private val myDebugProcess: DebugProcess) : MultiReq
allKotlinFilesScope allKotlinFilesScope
) )
override fun getAcceptedFileTypes(): Set<FileType> = KotlinFileTypeFactory.KOTLIN_FILE_TYPES_SET override fun getAcceptedFileTypes(): Set<FileType> = KotlinFileTypeFactoryUtils.KOTLIN_FILE_TYPES_SET
override fun evaluateCondition( override fun evaluateCondition(
context: EvaluationContext, context: EvaluationContext,
@@ -11,7 +11,7 @@ import com.intellij.openapi.actionSystem.ToggleAction
import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.components.ServiceManager
import com.intellij.xdebugger.XDebugSession import com.intellij.xdebugger.XDebugSession
import com.intellij.xdebugger.impl.XDebuggerUtilImpl import com.intellij.xdebugger.impl.XDebuggerUtilImpl
import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactory import org.jetbrains.kotlin.idea.core.KotlinFileTypeFactoryUtils
class ToggleKotlinVariablesState { class ToggleKotlinVariablesState {
companion object { companion object {
@@ -40,7 +40,7 @@ class ToggleKotlinVariablesView : ToggleAction() {
private fun XDebugSession.isInKotlinFile(): Boolean { private fun XDebugSession.isInKotlinFile(): Boolean {
val fileExtension = currentPosition?.file?.extension ?: return false 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 override fun isSelected(e: AnActionEvent) = kotlinVariableViewService.kotlinVariableView
@@ -14,13 +14,12 @@ import com.intellij.debugger.impl.DebuggerContextImpl
import com.intellij.debugger.jdi.StackFrameProxyImpl import com.intellij.debugger.jdi.StackFrameProxyImpl
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import com.sun.jdi.* import com.sun.jdi.*
import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.codegen.binding.CodegenBinding.asmTypeForAnonymousClass import org.jetbrains.kotlin.codegen.binding.CodegenBinding.asmTypeForAnonymousClass
import org.jetbrains.kotlin.codegen.coroutines.DO_RESUME_METHOD_NAME 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.INVOKE_SUSPEND_METHOD_NAME
import org.jetbrains.kotlin.codegen.coroutines.continuationAsmTypes import org.jetbrains.kotlin.codegen.coroutines.continuationAsmTypes
import org.jetbrains.kotlin.codegen.inline.KOTLIN_STRATA_NAME 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.CodeInsightUtils
import org.jetbrains.kotlin.idea.core.util.getLineEndOffset import org.jetbrains.kotlin.idea.core.util.getLineEndOffset
import org.jetbrains.kotlin.idea.core.util.getLineStartOffset 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.psi.*
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.inline.InlineUtil import org.jetbrains.kotlin.resolve.inline.InlineUtil
import org.jetbrains.org.objectweb.asm.Type
import java.util.* import java.util.*
fun Location.isInKotlinSources(): Boolean { fun Location.isInKotlinSources(): Boolean {
@@ -40,7 +38,7 @@ fun Location.isInKotlinSources(): Boolean {
fun ReferenceType.isInKotlinSources(): Boolean { fun ReferenceType.isInKotlinSources(): Boolean {
val fileExtension = safeSourceName()?.substringAfterLast('.')?.toLowerCase() ?: "" 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) fun ReferenceType.containsKotlinStrata() = availableStrata().contains(KOTLIN_STRATA_NAME)
@@ -25,7 +25,7 @@ import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor 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.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
@@ -144,7 +144,7 @@ object DebuggerUtils {
fun isKotlinSourceFile(fileName: String): Boolean { fun isKotlinSourceFile(fileName: String): Boolean {
val extension = FileUtilRt.getExtension(fileName).toLowerCase() val extension = FileUtilRt.getExtension(fileName).toLowerCase()
return extension in KotlinFileTypeFactory.KOTLIN_EXTENSIONS return extension in KotlinFileTypeFactoryUtils.KOTLIN_EXTENSIONS
} }
private fun analyzeElementWithInline( private fun analyzeElementWithInline(
@@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends> <depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends> <depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends> <depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
<depends optional="true" config-file="coverage.xml">Coverage</depends> <depends optional="true" config-file="coverage.xml">Coverage</depends>
@@ -100,7 +99,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService"/> <applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
@@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends> <depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends> <depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends> <depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
<depends optional="true" config-file="coverage.xml">Coverage</depends> <depends optional="true" config-file="coverage.xml">Coverage</depends>
@@ -111,7 +110,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" /> <applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
@@ -44,7 +44,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends> <depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends> <depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends> <depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
<depends optional="true" config-file="coverage.xml">Coverage</depends> <depends optional="true" config-file="coverage.xml">Coverage</depends>
@@ -100,7 +99,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" /> <applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
@@ -45,7 +45,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends> <depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends> <depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends> <depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
<depends optional="true" config-file="coverage.xml">Coverage</depends> <depends optional="true" config-file="coverage.xml">Coverage</depends>
@@ -110,7 +109,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" /> <applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
@@ -45,7 +45,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends> <depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends> <depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends> <depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends> <depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
<depends optional="true" config-file="coverage.xml">Coverage</depends> <depends optional="true" config-file="coverage.xml">Coverage</depends>
@@ -99,7 +98,6 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" /> <applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
+4
View File
@@ -105,6 +105,10 @@
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/> <editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.JvmStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.JvmStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.JvmPluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.compiler.KotlinCompilerStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider"/>
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinAlternativeSourceNotificationProvider"/> <editorNotificationProvider implementation="org.jetbrains.kotlin.idea.debugger.KotlinAlternativeSourceNotificationProvider"/>
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.inspections.JavaOutsideModuleDetector"/> <editorNotificationProvider implementation="org.jetbrains.kotlin.idea.inspections.JavaOutsideModuleDetector"/>
-3
View File
@@ -6,9 +6,6 @@
<extensions defaultExtensionNs="com.intellij"> <extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.JvmPluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.compiler.KotlinCompilerStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider"/>
<projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/> <projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/>
</extensions> </extensions>
-3
View File
@@ -2,9 +2,6 @@
<extensions defaultExtensionNs="com.intellij"> <extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.JvmPluginStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.compiler.KotlinCompilerStartupActivity"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.scratch.ScratchFileModuleInfoProvider"/>
<projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/> <projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.ui.KotlinConfigurationCheckerService"/>
</extensions> </extensions>
-128
View File
@@ -1,128 +0,0 @@
<idea-plugin>
<extensions defaultExtensionNs="org.jetbrains.kotlin">
<projectConfigurator implementation="org.jetbrains.kotlin.idea.maven.configuration.KotlinJavaMavenConfigurator"/>
<projectConfigurator implementation="org.jetbrains.kotlin.idea.maven.configuration.KotlinJavascriptMavenConfigurator"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.allopen.ide.AllOpenMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.noarg.ide.NoArgMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.samWithReceiver.ide.SamWithReceiverMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlinx.serialization.idea.KotlinSerializationMavenImportHandler"/>
<buildSystemTypeDetector implementation="org.jetbrains.kotlin.idea.maven.MavenDetector"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains.idea.maven">
<importer implementation="org.jetbrains.kotlin.idea.maven.KotlinMavenImporter" />
<importer implementation="org.jetbrains.kotlin.idea.maven.KotlinCodeStyleMavenImporter" />
<archetypesProvider implementation="org.jetbrains.kotlin.idea.maven.KotlinMavenArchetypesProvider" />
<pluginDescriptor mavenId="org.jetbrains.kotlin:kotlin-maven-plugin">
<param name="sourceDirs/source" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="sourceDirs/dir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="sourceDirs/sourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/defaultSourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/sourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/dir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="experimentalCoroutines" values="enable,warn,error"/>
<param name="languageVersion" refProvider="org.jetbrains.kotlin.idea.maven.MavenLanguageVersionsCompletionProvider" />
<param name="apiVersion" refProvider="org.jetbrains.kotlin.idea.maven.MavenApiVersionsCompletionProvider" />
<param name="main" refProvider="org.jetbrains.kotlin.idea.maven.MavenJsMainCallCompletionProvider" />
<param name="moduleKind" refProvider="org.jetbrains.kotlin.idea.maven.MavenJsModuleKindsCompletionProvider" />
<param name="jvmTarget" refProvider="org.jetbrains.kotlin.idea.maven.MavenJvmTargetsCompletionProvider" />
<param name="script" language="kotlin" />
</pluginDescriptor>
</extensions>
<extensionPoints>
<extensionPoint qualifiedName="org.jetbrains.kotlin.mavenProjectImportHandler" area="IDEA_PROJECT"
interface="org.jetbrains.kotlin.idea.maven.MavenProjectImportHandler"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenPluginPhaseInspection"
displayName="Kotlin Maven Plugin misconfigured"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.KotlinTestJUnitInspection"
displayName="kotlin-test-junit could be used"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DifferentMavenStdlibVersionInspection"
displayName="Library and maven plugin versions are different"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DifferentKotlinMavenVersionInspection"
displayName="Maven and IDE plugins versions are different"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DeprecatedMavenDependencyInspection"
displayName="Deprecated library is used in Maven"
groupName="Kotlin"
enabledByDefault="true"
cleanupTool="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.MavenCoroutinesDeprecationInspection"
displayName="Incompatible kotlinx.coroutines dependency is used with Kotlin 1.3+ in Maven"
groupPath="Kotlin,Migration"
groupName="Maven"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="ERROR" />
<intentionAction>
<className>org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToBuild</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToExecutionIntention</className>
<category>Kotlin</category>
</intentionAction>
<codeInsight.unresolvedReferenceQuickFixProvider
implementation="org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenUnresolvedReferenceQuickFixProvider" />
</extensions>
<actions>
<group id="KotlinMavenGenerate">
<separator />
<action id="KotlinGenerateMavenCompileExecutionAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenCompileExecutionAction"
text="Kotlin compile execution" />
<action id="KotlinGenerateMavenTestCompileExecutionAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenTestCompileExecutionAction"
text="Kotlin test-compile execution" />
<action id="KotlinGenerateMavenPluginAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenPluginAction"
text="Kotlin plugin" />
<add-to-group group-id="GenerateGroup" anchor="last" />
</group>
</actions>
</idea-plugin>
+125
View File
@@ -1,7 +1,132 @@
<idea-plugin> <idea-plugin>
<extensions defaultExtensionNs="org.jetbrains.kotlin">
<projectConfigurator implementation="org.jetbrains.kotlin.idea.maven.configuration.KotlinJavaMavenConfigurator"/>
<projectConfigurator implementation="org.jetbrains.kotlin.idea.maven.configuration.KotlinJavascriptMavenConfigurator"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.allopen.ide.AllOpenMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.noarg.ide.NoArgMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlin.samWithReceiver.ide.SamWithReceiverMavenProjectImportHandler"/>
<mavenProjectImportHandler implementation="org.jetbrains.kotlinx.serialization.idea.KotlinSerializationMavenImportHandler"/>
<buildSystemTypeDetector implementation="org.jetbrains.kotlin.idea.maven.MavenDetector"/>
</extensions>
<extensions defaultExtensionNs="org.jetbrains.idea.maven">
<importer implementation="org.jetbrains.kotlin.idea.maven.KotlinMavenImporter" />
<importer implementation="org.jetbrains.kotlin.idea.maven.KotlinCodeStyleMavenImporter" />
<archetypesProvider implementation="org.jetbrains.kotlin.idea.maven.KotlinMavenArchetypesProvider" />
<pluginDescriptor mavenId="org.jetbrains.kotlin:kotlin-maven-plugin">
<param name="sourceDirs/source" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="sourceDirs/dir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="sourceDirs/sourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/defaultSourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/sourceDir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="defaultSourceDirs/dir" refProvider="org.jetbrains.idea.maven.plugins.api.common.MavenCommonParamReferenceProviders$DirPath"/>
<param name="experimentalCoroutines" values="enable,warn,error"/>
<param name="languageVersion" refProvider="org.jetbrains.kotlin.idea.maven.MavenLanguageVersionsCompletionProvider" />
<param name="apiVersion" refProvider="org.jetbrains.kotlin.idea.maven.MavenApiVersionsCompletionProvider" />
<param name="main" refProvider="org.jetbrains.kotlin.idea.maven.MavenJsMainCallCompletionProvider" />
<param name="moduleKind" refProvider="org.jetbrains.kotlin.idea.maven.MavenJsModuleKindsCompletionProvider" />
<param name="jvmTarget" refProvider="org.jetbrains.kotlin.idea.maven.MavenJvmTargetsCompletionProvider" />
<param name="script" language="kotlin" />
</pluginDescriptor>
</extensions>
<extensionPoints>
<extensionPoint qualifiedName="org.jetbrains.kotlin.mavenProjectImportHandler" area="IDEA_PROJECT"
interface="org.jetbrains.kotlin.idea.maven.MavenProjectImportHandler"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij"> <extensions defaultExtensionNs="com.intellij">
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenPluginPhaseInspection"
displayName="Kotlin Maven Plugin misconfigured"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.KotlinTestJUnitInspection"
displayName="kotlin-test-junit could be used"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DifferentMavenStdlibVersionInspection"
displayName="Library and maven plugin versions are different"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DifferentKotlinMavenVersionInspection"
displayName="Maven and IDE plugins versions are different"
groupName="Kotlin"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.DeprecatedMavenDependencyInspection"
displayName="Deprecated library is used in Maven"
groupName="Kotlin"
enabledByDefault="true"
cleanupTool="true"
language="XML"
hasStaticDescription="true"
level="WARNING" />
<localInspection implementationClass="org.jetbrains.kotlin.idea.maven.inspections.MavenCoroutinesDeprecationInspection"
displayName="Incompatible kotlinx.coroutines dependency is used with Kotlin 1.3+ in Maven"
groupPath="Kotlin,Migration"
groupName="Maven"
enabledByDefault="true"
language="XML"
hasStaticDescription="true"
level="ERROR" />
<intentionAction>
<className>org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToBuild</className>
<category>Kotlin</category>
</intentionAction>
<intentionAction>
<className>org.jetbrains.kotlin.idea.maven.actions.MavenPluginSourcesMoveToExecutionIntention</className>
<category>Kotlin</category>
</intentionAction>
<codeInsight.unresolvedReferenceQuickFixProvider
implementation="org.jetbrains.kotlin.idea.maven.inspections.KotlinMavenUnresolvedReferenceQuickFixProvider" />
<postStartupActivity implementation="org.jetbrains.kotlin.idea.maven.MavenImportListener"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.maven.MavenImportListener"/>
<moduleService serviceImplementation="org.jetbrains.kotlin.idea.maven.KotlinImporterComponent"/> <moduleService serviceImplementation="org.jetbrains.kotlin.idea.maven.KotlinImporterComponent"/>
</extensions> </extensions>
<actions>
<group id="KotlinMavenGenerate">
<separator />
<action id="KotlinGenerateMavenCompileExecutionAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenCompileExecutionAction"
text="Kotlin compile execution" />
<action id="KotlinGenerateMavenTestCompileExecutionAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenTestCompileExecutionAction"
text="Kotlin test-compile execution" />
<action id="KotlinGenerateMavenPluginAction"
icon="/org/jetbrains/kotlin/idea/icons/kotlin13.png"
class="org.jetbrains.kotlin.idea.maven.actions.GenerateMavenPluginAction"
text="Kotlin plugin" />
<add-to-group group-id="GenerateGroup" anchor="last" />
</group>
</actions>
</idea-plugin> </idea-plugin>
@@ -645,6 +645,8 @@
<postStartupActivity implementation="org.jetbrains.kotlin.idea.statistics.KotlinGradleFUSLogger"/> <postStartupActivity implementation="org.jetbrains.kotlin.idea.statistics.KotlinGradleFUSLogger"/>
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity"/>
<moduleConfigurationEditorProvider implementation="org.jetbrains.kotlin.idea.roots.ui.NonJvmKotlinModuleEditorsProvider"/> <moduleConfigurationEditorProvider implementation="org.jetbrains.kotlin.idea.roots.ui.NonJvmKotlinModuleEditorsProvider"/>
<projectStructure.sourceRootEditHandler implementation="org.jetbrains.kotlin.idea.roots.ui.KotlinModuleSourceRootEditHandler$Source"/> <projectStructure.sourceRootEditHandler implementation="org.jetbrains.kotlin.idea.roots.ui.KotlinModuleSourceRootEditHandler$Source"/>
@@ -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)
}
}
@@ -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)
}
}
@@ -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);
}
}
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.codeInsight
import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.CodeInsightSettings
import com.intellij.codeInsight.editorActions.CopyPastePostProcessor import com.intellij.codeInsight.editorActions.CopyPastePostProcessor
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ReadAction
import com.intellij.openapi.diagnostic.ControlFlowException import com.intellij.openapi.diagnostic.ControlFlowException
import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.editor.Editor 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.openapi.vfs.VirtualFileManager
import com.intellij.psi.* import com.intellij.psi.*
import com.intellij.psi.util.PsiTreeUtil import com.intellij.psi.util.PsiTreeUtil
import com.intellij.util.concurrency.AppExecutorUtil
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.concurrency.CancellablePromise
import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor 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.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.kdoc.psi.api.KDocElement import org.jetbrains.kotlin.kdoc.psi.api.KDocElement
import org.jetbrains.kotlin.name.FqName 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.*
import org.jetbrains.kotlin.psi.psiUtil.* import org.jetbrains.kotlin.psi.psiUtil.*
import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContext
@@ -479,6 +481,15 @@ class KotlinCopyPasteReferenceProcessor : CopyPastePostProcessor<BasicKotlinRefe
) )
} }
private fun <T> submitNonBlocking(project: Project, indicator: ProgressIndicator, block: () -> T): CancellablePromise<T> =
ReadAction.nonBlocking<T> {
return@nonBlocking block()
}
.withDocumentsCommitted(project)
.cancelWith(indicator)
.expireWith(project)
.submit(AppExecutorUtil.getAppExecutorService())
private fun buildDummySourceScope( private fun buildDummySourceScope(
sourcePkgName: String, sourcePkgName: String,
imports: List<String>, imports: List<String>,
@@ -11,16 +11,12 @@ import com.intellij.codeInsight.hint.HintManagerImpl
import com.intellij.codeInsight.hint.HintUtil import com.intellij.codeInsight.hint.HintUtil
import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.application.ModalityState import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.application.ReadAction.nonBlocking
import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.ui.LightweightHint import com.intellij.ui.LightweightHint
import com.intellij.util.ArrayUtil import com.intellij.util.ArrayUtil
import com.intellij.util.concurrency.AppExecutorUtil
import org.jetbrains.annotations.TestOnly import org.jetbrains.annotations.TestOnly
import org.jetbrains.concurrency.CancellablePromise
import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.imports.KotlinImportOptimizer import org.jetbrains.kotlin.idea.imports.KotlinImportOptimizer
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -30,7 +26,7 @@ import java.util.*
import javax.swing.event.HyperlinkEvent import javax.swing.event.HyperlinkEvent
import javax.swing.event.HyperlinkListener import javax.swing.event.HyperlinkListener
// FIX ME WHEN BUNCH 192 REMOVED
object ReviewAddedImports { object ReviewAddedImports {
@get:TestOnly @get:TestOnly
var importsToBeReviewed: Collection<String> = emptyList() var importsToBeReviewed: Collection<String> = emptyList()
@@ -109,12 +105,3 @@ object ReviewAddedImports {
}) })
} }
} }
internal fun <T> submitNonBlocking(project: Project, indicator: ProgressIndicator, block: () -> T): CancellablePromise<T> =
nonBlocking<T> {
return@nonBlocking block()
}
.withDocumentsCommitted(project)
.cancelWith(indicator)
.expireWith(project)
.submit(AppExecutorUtil.getAppExecutorService())
@@ -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<ImmediateConfigurable.Case> = emptyList()
override val mainCheckboxText: String = ""
}
}
@@ -5,9 +5,12 @@
package org.jetbrains.kotlin.idea.codeInsight.codevision package org.jetbrains.kotlin.idea.codeInsight.codevision
import com.intellij.codeInsight.hints.settings.InlayHintsConfigurable
import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction import com.intellij.codeInsight.navigation.actions.GotoDeclarationAction
import com.intellij.internal.statistic.eventLog.FeatureUsageData 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.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiElement import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.highlighter.markers.OVERRIDDEN_FUNCTION 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?) { override fun onClick(editor: Editor, element: PsiElement, event: MouseEvent?) {
val project = element.project val project = element.project
logUsageStatistics(project, FUS_GROUP_ID, SETTING_CLICKED_EVENT_ID) logUsageStatistics(project, FUS_GROUP_ID, SETTING_CLICKED_EVENT_ID)
CodeVisionInlayHintsConfigurable.showSettingsDialogForLanguage(project, element.language) InlayHintsConfigurable.showSettingsDialogForLanguage(project, element.language)
} }
} }
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)
@@ -10,8 +10,10 @@ import com.intellij.lang.Language
import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.util.registry.Registry
import com.intellij.psi.PsiFile import com.intellij.psi.PsiFile
import com.intellij.ui.layout.panel
import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.KotlinLanguage
import javax.swing.JPanel
@Suppress("UnstableApiUsage") @Suppress("UnstableApiUsage")
class KotlinCodeVisionProvider : InlayHintsProvider<NoSettings> { class KotlinCodeVisionProvider : InlayHintsProvider<NoSettings> {
@@ -29,7 +31,13 @@ class KotlinCodeVisionProvider : InlayHintsProvider<NoSettings> {
override fun isLanguageSupported(language: Language): Boolean = language is KotlinLanguage 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<ImmediateConfigurable.Case> = emptyList()
override val mainCheckboxText: String = ""
}
override fun createSettings(): NoSettings = NoSettings() override fun createSettings(): NoSettings = NoSettings()
@@ -32,7 +32,6 @@ import java.io.File
* Component forces update for built-in libraries in plugin directory. They are ignored because of * Component forces update for built-in libraries in plugin directory. They are ignored because of
* com.intellij.util.indexing.FileBasedIndex.isUnderConfigOrSystem() * com.intellij.util.indexing.FileBasedIndex.isUnderConfigOrSystem()
*/ */
// FIX ME WHEN BUNCH 192 REMOVED
class KotlinUpdatePluginStartupActivity : StartupActivity { class KotlinUpdatePluginStartupActivity : StartupActivity {
override fun runActivity(project: Project) { override fun runActivity(project: Project) {
@@ -10,6 +10,7 @@ import com.intellij.openapi.application.PathMacros
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.project.ex.ProjectManagerEx
import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
@@ -110,7 +111,7 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
} }
override fun doCreateProject(projectFile: Path): Project { override fun doCreateProject(projectFile: Path): Project {
return loadProjectCompat(projectFile) return (ProjectManagerEx.getInstanceEx()).loadProject(projectFile)
} }
private val projectName: String private val projectName: String
@@ -10,6 +10,7 @@ import com.intellij.openapi.application.PathMacros
import com.intellij.openapi.module.Module import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.project.ex.ProjectManagerEx
import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
@@ -113,7 +114,7 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
override fun doCreateAndOpenProject(): Project { override fun doCreateAndOpenProject(): Project {
val projectFile = getProjectDirOrFile(isCreateDirectoryBasedProject) val projectFile = getProjectDirOrFile(isCreateDirectoryBasedProject)
return loadProjectCompat(projectFile) return (ProjectManagerEx.getInstanceEx()).loadProject(projectFile)
} }
private val projectName: String private val projectName: String
@@ -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)
}