diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaBinary.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt similarity index 87% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaBinary.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt index 845c6f5d1f9..d87bfb21962 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaBinary.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/klib/KlibMetaBinary.kt @@ -4,6 +4,7 @@ */ package org.jetbrains.kotlin.ide.konan.decompiler +import org.jetbrains.kotlin.idea.klib.KlibMetaFileType import org.jetbrains.kotlin.idea.util.KotlinBinaryExtension class KlibMetaBinary : KotlinBinaryExtension(KlibMetaFileType) diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibDecompiledFile.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibDecompiledFile.kt similarity index 92% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibDecompiledFile.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibDecompiledFile.kt index b316cfcd2ca..cdb35e36473 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibDecompiledFile.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibDecompiledFile.kt @@ -3,7 +3,7 @@ * 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.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibLoadingMetadataCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt similarity index 92% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibLoadingMetadataCache.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt index 14f24e08f91..c8189dc50f7 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibLoadingMetadataCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibLoadingMetadataCache.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.ide.konan.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.BaseComponent @@ -48,7 +48,9 @@ class KlibLoadingMetadataCache : BaseComponent { "Not a package metadata file: $packageFragmentFile" } - return packageFragmentCache.computeIfAbsent(CacheKey(packageFragmentFile)) { + return packageFragmentCache.computeIfAbsent( + CacheKey(packageFragmentFile) + ) { CacheValue(computePackageFragment(packageFragmentFile)) }.value } @@ -58,7 +60,9 @@ class KlibLoadingMetadataCache : BaseComponent { "Not a module header file: $moduleHeaderFile" } - return moduleHeaderCache.computeIfAbsent(CacheKey(moduleHeaderFile)) { + return moduleHeaderCache.computeIfAbsent( + CacheKey(moduleHeaderFile) + ) { CacheValue(computeModuleHeader(moduleHeaderFile)) }.value } @@ -66,7 +70,9 @@ class KlibLoadingMetadataCache : BaseComponent { private fun isMetadataCompatible(libraryRoot: VirtualFile): Boolean { val manifestFile = libraryRoot.findChild(KLIB_MANIFEST_FILE_NAME) ?: return false - val metadataVersion = libraryMetadataVersionCache.computeIfAbsent(CacheKey(manifestFile)) { + val metadataVersion = libraryMetadataVersionCache.computeIfAbsent( + CacheKey(manifestFile) + ) { CacheValue(computeLibraryMetadataVersion(manifestFile)) }.value ?: return false diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaFileType.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetaFileType.kt similarity index 94% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaFileType.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetaFileType.kt index e5aa9b5c68b..5ea94f8b1cb 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetaFileType.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetaFileType.kt @@ -3,7 +3,7 @@ * 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.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.vfs.VirtualFile diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDecompiler.kt similarity index 98% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDecompiler.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDecompiler.kt index 147507f85d0..415ff480ccd 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDecompiler.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.ide.konan.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.vfs.VirtualFile diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDeserializerForDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDeserializerForDecompiler.kt similarity index 91% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDeserializerForDecompiler.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDeserializerForDecompiler.kt index f2492a3037e..01704ccc2b1 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataDeserializerForDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataDeserializerForDecompiler.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.ide.konan.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.diagnostic.Logger import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion @@ -11,8 +11,8 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.NotFoundClasses -import org.jetbrains.kotlin.ide.konan.createLoggingErrorReporter import org.jetbrains.kotlin.idea.decompiler.textBuilder.DeserializerForDecompilerBase +import org.jetbrains.kotlin.idea.decompiler.textBuilder.LoggingErrorReporter import org.jetbrains.kotlin.idea.decompiler.textBuilder.ResolveEverythingToKotlinAnyLocalClassifierResolver import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.library.metadata.KlibMetadataClassDataFinder @@ -42,7 +42,9 @@ class KlibMetadataDeserializerForDecompiler( storageManager, moduleDescriptor, DeserializationConfiguration.Default, KlibMetadataClassDataFinder(proto, nameResolver), AnnotationAndConstantLoaderImpl(moduleDescriptor, notFoundClasses, serializerProtocol), packageFragmentProvider, - ResolveEverythingToKotlinAnyLocalClassifierResolver(builtIns), createLoggingErrorReporter(LOG), + ResolveEverythingToKotlinAnyLocalClassifierResolver(builtIns), createLoggingErrorReporter( + LOG + ), LookupTracker.DO_NOTHING, flexibleTypeDeserializer, emptyList(), notFoundClasses, ContractDeserializer.DEFAULT, extensionRegistryLite = serializerProtocol.extensionRegistry, samConversionResolver = SamConversionResolverImpl(storageManager, samWithReceiverResolvers = emptyList()) @@ -71,3 +73,4 @@ class KlibMetadataDeserializerForDecompiler( } } +fun createLoggingErrorReporter(log: Logger) = LoggingErrorReporter(log) \ No newline at end of file diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataStubBuilder.kt similarity index 92% rename from idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataStubBuilder.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataStubBuilder.kt index 50be43c6c00..d66cd0ddd55 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KlibMetadataStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/KlibMetadataStubBuilder.kt @@ -1,9 +1,9 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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.ide.konan.decompiler +package org.jetbrains.kotlin.idea.klib import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.vfs.VirtualFile @@ -11,7 +11,6 @@ import com.intellij.psi.compiled.ClsStubBuilder import com.intellij.psi.impl.compiled.ClassFileStubBuilder import com.intellij.psi.stubs.PsiFileStub import com.intellij.util.indexing.FileContent -import org.jetbrains.kotlin.ide.konan.createFileStub import org.jetbrains.kotlin.idea.decompiler.stubBuilder.createIncompatibleAbiVersionFileStub import org.jetbrains.kotlin.idea.decompiler.textBuilder.defaultDecompilerRendererOptions import org.jetbrains.kotlin.renderer.DescriptorRenderer diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/utils.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/utils.kt index 66762f68826..85acbf177fa 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/utils.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/klib/utils.kt @@ -5,7 +5,15 @@ package org.jetbrains.kotlin.idea.klib +import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile +import com.intellij.psi.PsiFileFactory +import com.intellij.psi.SingleRootFileViewProvider +import com.intellij.psi.impl.PsiFileFactoryImpl +import com.intellij.psi.stubs.PsiFileStub +import com.intellij.testFramework.LightVirtualFile +import org.jetbrains.kotlin.idea.KotlinFileType +import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.library.* import org.jetbrains.kotlin.library.impl.BuiltInsPlatform import org.jetbrains.kotlin.platform.TargetPlatform @@ -13,6 +21,7 @@ import org.jetbrains.kotlin.platform.isCommon import org.jetbrains.kotlin.platform.js.isJs import org.jetbrains.kotlin.platform.jvm.isJvm import org.jetbrains.kotlin.platform.konan.isNative +import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import java.io.IOException import java.util.* @@ -71,3 +80,13 @@ fun KotlinLibrary.readSafe(defaultValue: T, action: KotlinLibrary.() -> T) = } catch (_: IOException) { defaultValue } + +fun createFileStub(project: Project, text: String): PsiFileStub<*> { + val virtualFile = LightVirtualFile("dummy.kt", KotlinFileType.INSTANCE, text) + virtualFile.language = KotlinLanguage.INSTANCE + SingleRootFileViewProvider.doNotCheckFileSizeLimit(virtualFile) + + val psiFileFactory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl + val file = psiFileFactory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, false, false)!! + return KtStubElementTypes.FILE.builder.buildStubTree(file) as PsiFileStub<*> +} \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/vfilefinder/fileIndexes.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/vfilefinder/fileIndexes.kt index 65ce04bfc24..caa7b406e1d 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/vfilefinder/fileIndexes.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/vfilefinder/fileIndexes.kt @@ -15,6 +15,9 @@ import org.jetbrains.kotlin.idea.caches.IDEKotlinBinaryClassCache import org.jetbrains.kotlin.idea.decompiler.builtIns.BuiltInDefinitionFile import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType +import org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache +import org.jetbrains.kotlin.idea.klib.KlibMetaFileType +import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.metadata.js.JsProtoBuf import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName @@ -139,3 +142,29 @@ object KotlinMetadataFileIndex : KotlinMetadataFileIndexBase( KotlinMetadataFilePackageIndex::class.java, ClassId::getPackageFqName ) + +object KlibMetaFileIndex : KotlinFileIndexBase(KlibMetaFileIndex::class.java) { + + override fun getIndexer() = INDEXER + + override fun getInputFilter() = FileBasedIndex.InputFilter { it.fileType === KlibMetaFileType + } + + override fun getVersion() = VERSION + + // This is to express intention to index all Kotlin/Native metadata files irrespectively to file size: + override fun getFileTypesWithSizeLimitNotApplicable() = listOf(KlibMetaFileType) + + private const val VERSION = 4 + + /*todo: check version?!*/ + private val INDEXER = indexer { fileContent -> + val fragment = KlibLoadingMetadataCache + .getInstance().getCachedPackageFragment(fileContent.file) + if (fragment != null) + FqName(fragment.getExtension(KlibMetadataProtoBuf.fqName)) + else + null + } +} + diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java index 09253152424..408167ca629 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinFileTypeFactory.java @@ -22,6 +22,7 @@ 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; @@ -38,6 +39,8 @@ public class KotlinFileTypeFactory extends FileTypeFactory { @Override public void createFileTypes(@NotNull FileTypeConsumer consumer) { consumer.consume(KotlinFileType.INSTANCE, "kt;kts"); + consumer.consume(ArchiveFileType.INSTANCE, KLIB_FILE_EXTENSION); + consumer.consume(KlibMetaFileType.INSTANCE, KlibMetaFileType.INSTANCE.getDefaultExtension()); } } diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt index 0335c9f0fb7..da2735c2b85 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/KotlinNativePluginUtil.kt @@ -5,40 +5,17 @@ package org.jetbrains.kotlin.ide.konan -import com.intellij.openapi.diagnostic.Logger -import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.StandardFileSystems import com.intellij.openapi.vfs.VirtualFile -import com.intellij.psi.PsiFileFactory -import com.intellij.psi.SingleRootFileViewProvider -import com.intellij.psi.impl.PsiFileFactoryImpl -import com.intellij.psi.stubs.PsiFileStub -import com.intellij.testFramework.LightVirtualFile import com.intellij.util.PathUtil -import org.jetbrains.kotlin.ide.konan.decompiler.KlibLoadingMetadataCache -import org.jetbrains.kotlin.idea.KotlinFileType -import org.jetbrains.kotlin.idea.KotlinLanguage -import org.jetbrains.kotlin.idea.decompiler.textBuilder.LoggingErrorReporter -import org.jetbrains.kotlin.library.* +import org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache +import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.impl.KotlinLibraryImpl import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.library.metadata.PackageAccessHandler import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes import org.jetbrains.kotlin.konan.file.File as KFile -fun createFileStub(project: Project, text: String): PsiFileStub<*> { - val virtualFile = LightVirtualFile("dummy.kt", KotlinFileType.INSTANCE, text) - virtualFile.language = KotlinLanguage.INSTANCE - SingleRootFileViewProvider.doNotCheckFileSizeLimit(virtualFile) - - val psiFileFactory = PsiFileFactory.getInstance(project) as PsiFileFactoryImpl - val file = psiFileFactory.trySetupPsiForFile(virtualFile, KotlinLanguage.INSTANCE, false, false)!! - return KtStubElementTypes.FILE.builder.buildStubTree(file) as PsiFileStub<*> -} - -fun createLoggingErrorReporter(log: Logger) = LoggingErrorReporter(log) - internal object CachingIdeKonanLibraryMetadataLoader : PackageAccessHandler { override fun loadModuleHeader(library: KotlinLibrary): KlibMetadataProtoBuf.Header { val virtualFile = getVirtualFile(library, library.moduleHeaderFile) diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetaFileTypeFactory.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetaFileTypeFactory.kt deleted file mode 100644 index bc34e744c2f..00000000000 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetaFileTypeFactory.kt +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 2010-2019 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.decompiler - -import com.intellij.openapi.fileTypes.FileTypeConsumer -import com.intellij.openapi.fileTypes.FileTypeFactory - -class KotlinNativeMetaFileTypeFactory : FileTypeFactory() { - override fun createFileTypes(consumer: FileTypeConsumer) = consumer.consume(KlibMetaFileType, KlibMetaFileType.defaultExtension) -} diff --git a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetadataDecompiler.kt b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetadataDecompiler.kt index 533fc9097b8..a64a32f220f 100644 --- a/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetadataDecompiler.kt +++ b/idea/idea-native/src/org/jetbrains/kotlin/ide/konan/decompiler/KotlinNativeMetadataDecompiler.kt @@ -7,6 +7,10 @@ package org.jetbrains.kotlin.ide.konan.decompiler import com.intellij.openapi.vfs.VirtualFile import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataVersion +import org.jetbrains.kotlin.idea.klib.FileWithMetadata +import org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache +import org.jetbrains.kotlin.idea.klib.KlibMetaFileType +import org.jetbrains.kotlin.idea.klib.KlibMetadataDecompiler import org.jetbrains.kotlin.library.metadata.KlibMetadataSerializerProtocol import org.jetbrains.kotlin.serialization.js.DynamicTypeDeserializer @@ -19,7 +23,8 @@ class KotlinNativeMetadataDecompiler : KlibMetadataDecompiler(KlibMetaFileIndex::class.java) { - - override fun getIndexer() = INDEXER - - override fun getInputFilter() = FileBasedIndex.InputFilter { it.fileType === KlibMetaFileType } - - override fun getVersion() = VERSION - - // This is to express intention to index all Kotlin/Native metadata files irrespectively to file size: - override fun getFileTypesWithSizeLimitNotApplicable() = listOf(KlibMetaFileType) - - private const val VERSION = 4 - - /*todo: check version?!*/ - private val INDEXER = indexer { fileContent -> - val fragment = KlibLoadingMetadataCache.getInstance().getCachedPackageFragment(fileContent.file) - if (fragment != null) - FqName(fragment.getExtension(KlibMetadataProtoBuf.fqName)) - else - null - } -} diff --git a/idea/resources/META-INF/native.xml b/idea/resources/META-INF/native.xml index 7f4509f092f..0befe6c1b49 100644 --- a/idea/resources/META-INF/native.xml +++ b/idea/resources/META-INF/native.xml @@ -6,7 +6,7 @@ - org.jetbrains.kotlin.ide.konan.decompiler.KotlinNativeLoadingMetadataCache + org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache @@ -17,9 +17,8 @@ implementationClass="com.intellij.psi.ClassFileViewProviderFactory"/> - - +