From 0b8f35c04d3b68cde088bac87a48f8ec51870fe7 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 5 Jul 2019 01:21:45 +0300 Subject: [PATCH] Revert "Register mock injection language manager in compiler" This reverts commit 674badc6 Since idea 192.5587.17 idea has own InjectedLanguageManager registration and fails because of duplicate. org.junit.ComparisonFailure: exception: org.picocontainer.defaults.DuplicateComponentKeyRegistrationException: Key com.intellij.lang.injection.InjectedLanguageManager duplicated at com.intellij.util.pico.DefaultPicoContainer.registerComponent(DefaultPicoContainer.java:123) at com.intellij.util.pico.DefaultPicoContainer.registerComponentInstance(DefaultPicoContainer.java:331) at com.intellij.mock.MockComponentManager.registerService(MockComponentManager.java:89) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment$ProjectEnvironment.registerJavaPsiFacade(KotlinCoreEnvironment.kt:162) at com.intellij.core.JavaCoreProjectEnvironment.(JavaCoreProjectEnvironment.java:55) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment.(KotlinCoreProjectEnvironment.kt:27) ... --- .../cli/jvm/compiler/KotlinCoreEnvironment.kt | 2 - .../compiler/MockInjectedLanguageManager.kt | 54 ------------------- .../MockInjectedLanguageManager.kt.183 | 50 ----------------- 3 files changed, 106 deletions(-) delete mode 100644 compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt delete mode 100644 compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt.183 diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index 0aae06d9b97..b2439612c05 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -26,7 +26,6 @@ import com.intellij.core.JavaCoreApplicationEnvironment import com.intellij.core.JavaCoreProjectEnvironment import com.intellij.ide.highlighter.JavaFileType import com.intellij.lang.MetaLanguage -import com.intellij.lang.injection.InjectedLanguageManager import com.intellij.lang.java.JavaParserDefinition import com.intellij.mock.MockProject import com.intellij.openapi.Disposable @@ -159,7 +158,6 @@ class KotlinCoreEnvironment private constructor( registerService(ExternalAnnotationsManager::class.java, MockExternalAnnotationsManager()) registerService(InferredAnnotationsManager::class.java, MockInferredAnnotationsManager()) - registerService(InjectedLanguageManager::class.java, MockInjectedLanguageManager()) } super.registerJavaPsiFacade() diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt deleted file mode 100644 index f3bfa65ff1b..00000000000 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt +++ /dev/null @@ -1,54 +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.cli.jvm.compiler - -import com.intellij.injected.editor.DocumentWindow -import com.intellij.lang.injection.InjectedLanguageManager -import com.intellij.lang.injection.MultiHostInjector -import com.intellij.openapi.Disposable -import com.intellij.openapi.editor.Document -import com.intellij.openapi.util.Pair -import com.intellij.openapi.util.TextRange -import com.intellij.psi.FileViewProvider -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiFile -import com.intellij.psi.PsiLanguageInjectionHost - -class MockInjectedLanguageManager : InjectedLanguageManager() { - override fun mightHaveInjectedFragmentAtOffset(hostDocument: Document, hostOffset: Int): Boolean = false - - override fun getTopLevelFile(element: PsiElement): PsiFile? = null - override fun getUnescapedText(injectedNode: PsiElement): String = "" - override fun getInjectionHost(injectedProvider: FileViewProvider): PsiLanguageInjectionHost? = null - override fun getInjectionHost(injectedElement: PsiElement): PsiLanguageInjectionHost? = null - override fun getInjectedPsiFiles(host: PsiElement): List> = emptyList() - - override fun enumerate(host: PsiElement, visitor: PsiLanguageInjectionHost.InjectedPsiVisitor) {} - override fun enumerateEx( - host: PsiElement, containingFile: PsiFile, probeUp: Boolean, visitor: PsiLanguageInjectionHost.InjectedPsiVisitor) {} - - override fun getCachedInjectedDocumentsInRange(hostPsiFile: PsiFile, range: TextRange): List = emptyList() - - override fun dropFileCaches(file: PsiFile) {} - override fun getNonEditableFragments(window: DocumentWindow): List = emptyList() - - override fun registerMultiHostInjector(injector: MultiHostInjector) {} - override fun registerMultiHostInjector(injector: MultiHostInjector, parentDisposable: Disposable) {} - - override fun isInjectedFragment(injectedFile: PsiFile): Boolean = false - - override fun intersectWithAllEditableFragments(injectedPsi: PsiFile, rangeToEdit: TextRange): List = emptyList() - - override fun freezeWindow(document: DocumentWindow): DocumentWindow = document - override fun findInjectedElementAt(hostFile: PsiFile, hostDocumentOffset: Int): PsiElement? = null - - override fun injectedToHost(injectedContext: PsiElement, injectedTextRange: TextRange): TextRange = injectedTextRange - override fun injectedToHost(injectedContext: PsiElement, injectedOffset: Int): Int = injectedOffset - - // BUNCH: 183 - @Suppress("MissingRecentApi") - override fun injectedToHost(injectedContext: PsiElement, injectedOffset: Int, minHostOffset: Boolean): Int = injectedOffset -} \ No newline at end of file diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt.183 b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt.183 deleted file mode 100644 index e6d35191dc4..00000000000 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/MockInjectedLanguageManager.kt.183 +++ /dev/null @@ -1,50 +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.cli.jvm.compiler - -import com.intellij.injected.editor.DocumentWindow -import com.intellij.lang.injection.InjectedLanguageManager -import com.intellij.lang.injection.MultiHostInjector -import com.intellij.openapi.Disposable -import com.intellij.openapi.editor.Document -import com.intellij.openapi.util.Pair -import com.intellij.openapi.util.TextRange -import com.intellij.psi.FileViewProvider -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiFile -import com.intellij.psi.PsiLanguageInjectionHost - -class MockInjectedLanguageManager : InjectedLanguageManager() { - override fun mightHaveInjectedFragmentAtOffset(hostDocument: Document, hostOffset: Int): Boolean = false - - override fun getTopLevelFile(element: PsiElement): PsiFile? = null - override fun getUnescapedText(injectedNode: PsiElement): String = "" - override fun getInjectionHost(injectedProvider: FileViewProvider): PsiLanguageInjectionHost? = null - override fun getInjectionHost(injectedElement: PsiElement): PsiLanguageInjectionHost? = null - override fun getInjectedPsiFiles(host: PsiElement): List> = emptyList() - - override fun enumerate(host: PsiElement, visitor: PsiLanguageInjectionHost.InjectedPsiVisitor) {} - override fun enumerateEx( - host: PsiElement, containingFile: PsiFile, probeUp: Boolean, visitor: PsiLanguageInjectionHost.InjectedPsiVisitor) {} - - override fun getCachedInjectedDocumentsInRange(hostPsiFile: PsiFile, range: TextRange): List = emptyList() - - override fun dropFileCaches(file: PsiFile) {} - override fun getNonEditableFragments(window: DocumentWindow): List = emptyList() - - override fun registerMultiHostInjector(injector: MultiHostInjector) {} - override fun registerMultiHostInjector(injector: MultiHostInjector, parentDisposable: Disposable) {} - - override fun isInjectedFragment(injectedFile: PsiFile): Boolean = false - - override fun intersectWithAllEditableFragments(injectedPsi: PsiFile, rangeToEdit: TextRange): List = emptyList() - - override fun freezeWindow(document: DocumentWindow): DocumentWindow = document - override fun findInjectedElementAt(hostFile: PsiFile, hostDocumentOffset: Int): PsiElement? = null - - override fun injectedToHost(injectedContext: PsiElement, injectedTextRange: TextRange): TextRange = injectedTextRange - override fun injectedToHost(injectedContext: PsiElement, injectedOffset: Int): Int = injectedOffset -} \ No newline at end of file