mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[IDE] Move KotlinJavaScriptMetaFileDecompiler to kotlin.git
KTIJ-27752 GitOrigin-RevId: 4b599ed1e07fbbab8f97ab995172d6eb902277eb
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2a550a0751
commit
3ffacaccc0
@@ -1,38 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
|
||||
package org.jetbrains.kotlin.idea.decompiler.js
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinMetadataDecompiler
|
||||
import org.jetbrains.kotlin.analysis.decompiler.stub.file.KotlinMetadataStubBuilder
|
||||
import org.jetbrains.kotlin.idea.base.psi.fileTypes.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.js.JsProtoBuf
|
||||
import org.jetbrains.kotlin.psi.stubs.KotlinStubVersions
|
||||
import org.jetbrains.kotlin.serialization.js.DynamicTypeDeserializer
|
||||
import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol
|
||||
import org.jetbrains.kotlin.utils.JsMetadataVersion
|
||||
import java.io.ByteArrayInputStream
|
||||
|
||||
class KotlinJavaScriptMetaFileDecompiler : KotlinMetadataDecompiler<JsMetadataVersion>(
|
||||
fileType = KotlinJavaScriptMetaFileType,
|
||||
serializerProtocol = { JsSerializerProtocol },
|
||||
flexibleTypeDeserializer = DynamicTypeDeserializer,
|
||||
expectedBinaryVersion = { JsMetadataVersion.INSTANCE },
|
||||
invalidBinaryVersion = { JsMetadataVersion.INVALID_VERSION },
|
||||
stubVersion = KotlinStubVersions.JS_STUB_VERSION
|
||||
) {
|
||||
override fun readFile(bytes: ByteArray, file: VirtualFile): KotlinMetadataStubBuilder.FileWithMetadata {
|
||||
val stream = ByteArrayInputStream(bytes)
|
||||
|
||||
val version = JsMetadataVersion.readFrom(stream)
|
||||
if (!version.isCompatible()) {
|
||||
return KotlinMetadataStubBuilder.FileWithMetadata.Incompatible(version)
|
||||
}
|
||||
|
||||
JsProtoBuf.Header.parseDelimitedFrom(stream)
|
||||
|
||||
val proto = ProtoBuf.PackageFragment.parseFrom(stream, JsSerializerProtocol.extensionRegistry)
|
||||
return KotlinMetadataStubBuilder.FileWithMetadata.Compatible(proto, version, JsSerializerProtocol)
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ package org.jetbrains.kotlin.idea.vfilefinder
|
||||
import com.intellij.util.indexing.DefaultFileTypeSpecificInputFilter
|
||||
import com.intellij.util.indexing.FileContent
|
||||
import com.intellij.util.indexing.ID
|
||||
import org.jetbrains.kotlin.idea.base.psi.fileTypes.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.js.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.metadata.js.JsProtoBuf
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.utils.JsMetadataVersion
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.analysis.decompiler.konan.KlibMetaFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.idea.base.psi.fileTypes.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.js.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.intellij.openapi.fileTypes.FileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.konan.KlibMetaFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType
|
||||
import org.jetbrains.kotlin.idea.KotlinModuleFileType
|
||||
import org.jetbrains.kotlin.idea.base.psi.fileTypes.KotlinJavaScriptMetaFileType
|
||||
import org.jetbrains.kotlin.analysis.decompiler.js.KotlinJavaScriptMetaFileType
|
||||
|
||||
abstract class KotlinBinaryExtension(val fileType: FileType) {
|
||||
companion object {
|
||||
|
||||
@@ -8,4 +8,5 @@ import org.jetbrains.kotlin.idea.base.psi.KotlinBasePsiBundle
|
||||
class IdeKotlinLabelProviderService : KotlinLabelProviderService() {
|
||||
override fun getLabelForBuiltInFileType(): String = KotlinBasePsiBundle.message("kotlin.built.in.file.type")
|
||||
override fun getLabelForKlibMetaFileType(): String = KotlinBasePsiBundle.message("klib.metadata.short")
|
||||
override fun getLabelForKotlinJavaScriptMetaFileType(): String = KotlinBasePsiBundle.message("kotlin.javascript.meta.file")
|
||||
}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
|
||||
package org.jetbrains.kotlin.idea.base.psi.fileTypes
|
||||
|
||||
import com.intellij.openapi.fileTypes.FileType
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.idea.base.psi.KotlinBasePsiBundle
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
|
||||
|
||||
object KotlinJavaScriptMetaFileType : FileType {
|
||||
override fun getName() = "KJSM"
|
||||
override fun getDescription() = KotlinBasePsiBundle.message("kotlin.javascript.meta.file")
|
||||
override fun getDefaultExtension() = KotlinJavascriptSerializationUtil.CLASS_METADATA_FILE_EXTENSION
|
||||
override fun getIcon() = null
|
||||
override fun isBinary() = true
|
||||
override fun isReadOnly() = true
|
||||
override fun getCharset(file: VirtualFile, content: ByteArray) = null
|
||||
}
|
||||
@@ -21,7 +21,7 @@
|
||||
<fileType name="KNM" fieldName="INSTANCE" extensions="knm"
|
||||
implementationClass="org.jetbrains.kotlin.analysis.decompiler.konan.KlibMetaFileType"/>
|
||||
<fileType name="KJSM" fieldName="INSTANCE" extensions="kjsm"
|
||||
implementationClass="org.jetbrains.kotlin.idea.base.psi.fileTypes.KotlinJavaScriptMetaFileType"/>
|
||||
implementationClass="org.jetbrains.kotlin.analysis.decompiler.js.KotlinJavaScriptMetaFileType"/>
|
||||
<fileType name="kotlin_builtins" fieldName="INSTANCE" extensions="kotlin_builtins;kotlin_metadata"
|
||||
implementationClass="org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInFileType"/>
|
||||
<fileType name="kotlin_module" fieldName="INSTANCE" extensions="kotlin_module"
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
<search.topHitProvider implementation="org.jetbrains.kotlin.idea.editor.KotlinEditorOptionsTopHitProvider"/>
|
||||
|
||||
<psi.classFileDecompiler implementation="org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler"/>
|
||||
<psi.classFileDecompiler implementation="org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileDecompiler"/>
|
||||
<psi.classFileDecompiler implementation="org.jetbrains.kotlin.analysis.decompiler.js.KotlinJavaScriptMetaFileDecompiler"/>
|
||||
<psi.classFileDecompiler implementation="org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInDecompiler"/>
|
||||
|
||||
<moduleConfigurationEditorProvider implementation="org.jetbrains.kotlin.idea.roots.ui.NonJvmKotlinModuleEditorsProvider"/>
|
||||
|
||||
Reference in New Issue
Block a user