From 81b6a61edf23d33156a84933267fb00db2d38ec5 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Mon, 21 Aug 2017 10:05:34 +0300 Subject: [PATCH] `KotlinLanguageInjector` can inject into files modified for autocompletion --- .../jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt | 2 +- idea/tests/org/jetbrains/kotlin/psi/KotlinInjectionTest.kt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt index f9eda106719..f66f727ae17 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/injection/KotlinLanguageInjector.kt @@ -75,7 +75,7 @@ class KotlinLanguageInjector( val support = kotlinSupport ?: return - if (!ProjectRootsUtil.isInProjectOrLibSource(ktHost)) return + if (!ProjectRootsUtil.isInProjectOrLibSource(ktHost.containingFile.originalFile)) return val needImmediateAnswer = with(ApplicationManager.getApplication()) { isDispatchThread && !isUnitTestMode } val kotlinCachedInjection = ktHost.cachedInjectionWithModification diff --git a/idea/tests/org/jetbrains/kotlin/psi/KotlinInjectionTest.kt b/idea/tests/org/jetbrains/kotlin/psi/KotlinInjectionTest.kt index 3185c74f07b..2d642440a25 100644 --- a/idea/tests/org/jetbrains/kotlin/psi/KotlinInjectionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/psi/KotlinInjectionTest.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.psi +import com.intellij.codeInsight.completion.CompletionType import com.intellij.lang.html.HTMLLanguage import com.intellij.openapi.fileTypes.PlainTextLanguage import org.intellij.lang.regexp.RegExpLanguage @@ -513,6 +514,9 @@ class KotlinInjectionTest : AbstractInjectionTest() { HTMLLanguage.INSTANCE.id, unInjectShouldBePresent = false ) + + assertSameElements(myFixture.complete(CompletionType.BASIC).flatMap { it.allLookupStrings }, + "html") } finally { Configuration.getInstance().replaceInjections(listOf(), listOf(customInjection), true)