Refactor and fix files previously affected by 192 patchset (KTI-315)
This commit is contained in:
@@ -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<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 {
|
||||
@JvmStatic
|
||||
|
||||
-110
@@ -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
|
||||
}
|
||||
}
|
||||
+1
-17
@@ -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<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());
|
||||
}
|
||||
}
|
||||
-1
@@ -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) {
|
||||
|
||||
+1
-8
@@ -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<Couple<String>> 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() {
|
||||
|
||||
+11
-1
@@ -422,7 +422,17 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
|
||||
}
|
||||
|
||||
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) {
|
||||
|
||||
-39
@@ -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.util.application.isUnitTestMode
|
||||
|
||||
// FIX ME WHEN BUNCH 192 REMOVED
|
||||
|
||||
class JvmPluginStartupActivity : StartupActivity {
|
||||
override fun runActivity(project: Project) {
|
||||
if (isUnitTestMode()) {
|
||||
|
||||
@@ -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) :
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
|
||||
@@ -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.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<KotlinImporterComponent
|
||||
override fun getState(): State {
|
||||
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.util.ProgressIndicatorUtils.runUnderDisposeAwareIndicator
|
||||
|
||||
// FIX ME WHEN BUNCH 192 REMOVED
|
||||
|
||||
class MavenImportListener : StartupActivity {
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.idea.test
|
||||
|
||||
import com.intellij.application.options.CodeStyle
|
||||
import com.intellij.codeInsight.daemon.impl.EditorTracker
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.openapi.actionSystem.ActionPlaces
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||
@@ -91,7 +92,7 @@ abstract class KotlinLightCodeInsightFixtureTestCase : KotlinLightCodeInsightFix
|
||||
runPostStartupActivitiesOnce(project)
|
||||
VfsRootAccess.allowRootAccess(project, KotlinTestUtils.getHomeDirectory())
|
||||
|
||||
editorTrackerProjectOpened(project)
|
||||
EditorTracker.getInstance(project)
|
||||
|
||||
if (!isFirPlugin) {
|
||||
invalidateLibraryCache(project)
|
||||
|
||||
@@ -5,16 +5,10 @@
|
||||
|
||||
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.startup.StartupManager
|
||||
|
||||
// FIX ME WHEN BUNCH 192 REMOVED
|
||||
fun editorTrackerProjectOpened(project: Project) {
|
||||
EditorTracker.getInstance(project)
|
||||
}
|
||||
|
||||
// FIX ME WHEN BUNCH 193 REMOVED
|
||||
fun runPostStartupActivitiesOnce(project: Project) {
|
||||
(StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivitiesRegisteredDynamically()
|
||||
|
||||
@@ -5,16 +5,10 @@
|
||||
|
||||
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.startup.StartupManager
|
||||
|
||||
// FIX ME WHEN BUNCH 192 REMOVED
|
||||
fun editorTrackerProjectOpened(project: Project) {
|
||||
EditorTracker.getInstance(project)
|
||||
}
|
||||
|
||||
// FIX ME WHEN BUNCH 193 REMOVED
|
||||
fun runPostStartupActivitiesOnce(project: Project) {
|
||||
(StartupManager.getInstance(project) as StartupManagerImpl).runPostStartupActivities()
|
||||
|
||||
@@ -5,15 +5,7 @@
|
||||
|
||||
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.startup.StartupManager
|
||||
|
||||
// FIX ME WHEN BUNCH 192 REMOVED
|
||||
fun editorTrackerProjectOpened(project: Project) {
|
||||
EditorTracker.getInstance(project)
|
||||
}
|
||||
|
||||
// FIX ME WHEN BUNCH 193 REMOVED
|
||||
fun runPostStartupActivitiesOnce(project: Project) {
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@ import com.sun.jdi.ReferenceType
|
||||
import com.sun.jdi.request.ClassPrepareRequest
|
||||
import org.jetbrains.kotlin.codegen.inline.KOTLIN_STRATA_NAME
|
||||
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.getLineStartOffset
|
||||
import org.jetbrains.kotlin.idea.debugger.breakpoints.getLambdasAtLineIfAny
|
||||
@@ -71,7 +71,7 @@ class KotlinPositionManager(private val myDebugProcess: DebugProcess) : MultiReq
|
||||
allKotlinFilesScope
|
||||
)
|
||||
|
||||
override fun getAcceptedFileTypes(): Set<FileType> = KotlinFileTypeFactory.KOTLIN_FILE_TYPES_SET
|
||||
override fun getAcceptedFileTypes(): Set<FileType> = KotlinFileTypeFactoryUtils.KOTLIN_FILE_TYPES_SET
|
||||
|
||||
override fun evaluateCondition(
|
||||
context: EvaluationContext,
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-4
@@ -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)
|
||||
|
||||
+2
-2
@@ -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(
|
||||
|
||||
@@ -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="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="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="testng-j.xml">TestNG-J</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"/>
|
||||
|
||||
<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.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="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="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="testng-j.xml">TestNG-J</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" />
|
||||
|
||||
<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.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="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="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="testng-j.xml">TestNG-J</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" />
|
||||
|
||||
<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.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="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="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="testng-j.xml">TestNG-J</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" />
|
||||
|
||||
<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.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="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="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="testng-j.xml">TestNG-J</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" />
|
||||
|
||||
<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.caches.KotlinPackageContentModificationListener"/>
|
||||
|
||||
@@ -105,6 +105,10 @@
|
||||
<editorNotificationProvider implementation="org.jetbrains.kotlin.idea.configuration.KotlinSetupEnvironmentNotificationProvider"/>
|
||||
<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.inspections.JavaOutsideModuleDetector"/>
|
||||
|
||||
@@ -6,9 +6,6 @@
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<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"/>
|
||||
</extensions>
|
||||
|
||||
@@ -2,9 +2,6 @@
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<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"/>
|
||||
</extensions>
|
||||
|
||||
@@ -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>
|
||||
@@ -1,7 +1,132 @@
|
||||
<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" />
|
||||
|
||||
<postStartupActivity implementation="org.jetbrains.kotlin.idea.maven.MavenImportListener"/>
|
||||
|
||||
<moduleService serviceImplementation="org.jetbrains.kotlin.idea.maven.KotlinImporterComponent"/>
|
||||
</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>
|
||||
|
||||
@@ -645,6 +645,8 @@
|
||||
|
||||
<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"/>
|
||||
|
||||
<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);
|
||||
}
|
||||
}
|
||||
+12
-1
@@ -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<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(
|
||||
sourcePkgName: String,
|
||||
imports: List<String>,
|
||||
|
||||
+1
-14
@@ -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<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 = ""
|
||||
}
|
||||
}
|
||||
+11
-2
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
+9
-1
@@ -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<NoSettings> {
|
||||
@@ -29,7 +31,13 @@ class KotlinCodeVisionProvider : InlayHintsProvider<NoSettings> {
|
||||
|
||||
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()
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-1
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user