diff --git a/plugins/kotlin/highlighting/highlighting-k2/resources/intellij.kotlin.highlighting.xml b/plugins/kotlin/highlighting/highlighting-k2/resources/intellij.kotlin.highlighting.xml index 324aaf097850..11e31570602f 100644 --- a/plugins/kotlin/highlighting/highlighting-k2/resources/intellij.kotlin.highlighting.xml +++ b/plugins/kotlin/highlighting/highlighting-k2/resources/intellij.kotlin.highlighting.xml @@ -20,6 +20,7 @@ + diff --git a/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/visitor/KotlinHighlightInjectionErrorFilter.kt b/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/visitor/KotlinHighlightInjectionErrorFilter.kt new file mode 100644 index 000000000000..f6c8a541551a --- /dev/null +++ b/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/visitor/KotlinHighlightInjectionErrorFilter.kt @@ -0,0 +1,19 @@ +// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.kotlin.idea.highlighting.visitor + +import com.intellij.codeInsight.highlighting.HighlightErrorFilter +import com.intellij.lang.injection.InjectedLanguageManager +import com.intellij.psi.PsiErrorElement +import org.jetbrains.kotlin.idea.KotlinLanguage + +internal class KotlinHighlightInjectionErrorFilter: HighlightErrorFilter() { + override fun shouldHighlightErrorElement(element: PsiErrorElement): Boolean { + if (element.language == KotlinLanguage.INSTANCE && + element.errorDescription == "Package directive and imports are forbidden in code fragments" && + InjectedLanguageManager.getInstance(element.project).isInjectedFragment(element.containingFile) + ) { + return false + } + return true + } +} diff --git a/plugins/kotlin/injection/k2/tests/test/org/jetbrains/kotlin/idea/k2/injection/K2KotlinInjectionTest.kt b/plugins/kotlin/injection/k2/tests/test/org/jetbrains/kotlin/idea/k2/injection/K2KotlinInjectionTest.kt index 2d209f15c4bc..92acb97075e6 100644 --- a/plugins/kotlin/injection/k2/tests/test/org/jetbrains/kotlin/idea/k2/injection/K2KotlinInjectionTest.kt +++ b/plugins/kotlin/injection/k2/tests/test/org/jetbrains/kotlin/idea/k2/injection/K2KotlinInjectionTest.kt @@ -68,4 +68,24 @@ class K2KotlinInjectionTest: KotlinInjectionTestBase() { myFixture.checkHighlighting() } } + + fun testInjectKotlinInJava() { + myFixture.configureByText( + "a.java", + """ + + import org.intellij.lang.annotations.Language; + + class Main { + { + @Language("kotlin") + var kotlinCode = "package foo; class A"; + } + } + """.trimIndent() + ) + + myFixture.checkHighlighting() + + } }