diff --git a/plugins/kotlin/kotlin.lombok.tests/BUILD.bazel b/plugins/kotlin/kotlin.lombok.tests/BUILD.bazel
index e44ad66ec9d9..dcdbd8beaa3b 100644
--- a/plugins/kotlin/kotlin.lombok.tests/BUILD.bazel
+++ b/plugins/kotlin/kotlin.lombok.tests/BUILD.bazel
@@ -23,6 +23,7 @@ jvm_library(
"//plugins/kotlin/base/test:kotlin-base-test_test_lib",
"//plugins/kotlin/base/plugin:kotlin-base-plugin",
"//plugins/kotlin/base/plugin:kotlin-base-plugin_test_lib",
+ "//java/openapi:java",
]
)
diff --git a/plugins/kotlin/kotlin.lombok.tests/kotlin.k2.lombok.tests.iml b/plugins/kotlin/kotlin.lombok.tests/kotlin.k2.lombok.tests.iml
index b7454057e141..f7b45e2b2520 100644
--- a/plugins/kotlin/kotlin.lombok.tests/kotlin.k2.lombok.tests.iml
+++ b/plugins/kotlin/kotlin.lombok.tests/kotlin.k2.lombok.tests.iml
@@ -15,5 +15,6 @@
+
\ No newline at end of file
diff --git a/plugins/kotlin/kotlin.lombok.tests/test/org/jetbrains/kotlin/highlighter/KotlinWithLombokHighlighting.kt b/plugins/kotlin/kotlin.lombok.tests/test/org/jetbrains/kotlin/highlighter/KotlinWithLombokHighlighting.kt
new file mode 100644
index 000000000000..76fa9452f50c
--- /dev/null
+++ b/plugins/kotlin/kotlin.lombok.tests/test/org/jetbrains/kotlin/highlighter/KotlinWithLombokHighlighting.kt
@@ -0,0 +1,115 @@
+// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.kotlin.highlighter
+
+import com.intellij.openapi.module.JavaModuleType
+import com.intellij.openapi.projectRoots.Sdk
+import com.intellij.openapi.roots.DependencyScope
+import com.intellij.openapi.roots.ModuleRootModificationUtil
+import com.intellij.testFramework.PsiTestUtil
+import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase
+import com.intellij.testFramework.fixtures.MavenDependencyUtil
+import de.plushnikov.intellij.plugin.LombokTestUtil
+import org.intellij.lang.annotations.Language
+import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode
+import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
+import org.jetbrains.kotlin.idea.test.ExpectedPluginModeProvider
+import org.jetbrains.kotlin.idea.test.setUpWithKotlinPlugin
+
+internal class KotlinWithLombokHighlighting : JavaCodeInsightFixtureTestCase(), ExpectedPluginModeProvider {
+ override val pluginMode: KotlinPluginMode
+ get() = KotlinPluginMode.K2
+
+ private val sdk: Sdk
+ get() = LombokTestUtil.LOMBOK_DESCRIPTOR.sdk ?: error("Lombok SDK is not found")
+
+ override fun setUp() {
+ setUpWithKotlinPlugin(testRootDisposable) { super.setUp() }
+ LombokTestUtil.LOMBOK_DESCRIPTOR.registerSdk(testRootDisposable)
+ }
+
+ fun `test using lombok classes from java module in kotlin module without lombok compiler plugin`() {
+ val javaWithLombokModule = PsiTestUtil.addModule(
+ project,
+ JavaModuleType.getModuleType(),
+ "javaWithLombokModule",
+ myFixture.tempDirFixture.findOrCreateDir("javaWithLombokModule"),
+ )
+
+ @Language("JAVA")
+ val javaDataClassText = """
+ package lib;
+
+ import lombok.Data;
+ import lombok.AllArgsConstructor;
+ import lombok.Builder;
+
+ @Data
+ @AllArgsConstructor
+ @Builder
+ public class UserDataClass {
+ private String name;
+ private int age;
+ }
+ """.trimIndent()
+
+ val javaDataClass = myFixture.addFileToProject(
+ "javaWithLombokModule/lib/UserDataClass.java",
+ javaDataClassText,
+ )
+
+ myFixture.allowTreeAccessForFile(javaDataClass.virtualFile)
+
+ ConfigLibraryUtil.configureSdk(javaWithLombokModule, sdk)
+ ModuleRootModificationUtil.modifyModel(javaWithLombokModule) { model ->
+ MavenDependencyUtil.addFromMaven(
+ model,
+ LombokTestUtil.LOMBOK_MAVEN_COORDINATES,
+ /* includeTransitiveDependencies = */ true,
+ DependencyScope.PROVIDED,
+ )
+ true
+ }
+
+ val kotlinModule = PsiTestUtil.addModule(
+ project,
+ JavaModuleType.getModuleType(),
+ "kotlinModule",
+ myFixture.tempDirFixture.findOrCreateDir("kotlinModule"),
+ )
+
+ @Language("kotlin")
+ val kotlinMainText = """
+ package main
+
+ import lib.UserDataClass
+
+ fun useConstructor() {
+ UserDataClass("hello", 10)
+ }
+
+ fun useProperties(user: UserDataClass) {
+ println(user.name)
+ println(user.age)
+ }
+
+ fun createBuilder(): UserDataClass {
+ return UserDataClass.builder().name("hello").age(10).build()
+ }
+
+ fun useBuilder(userBuilder: UserDataClass.UserDataClassBuilder): UserDataClass {
+ return userBuilder.name("hello").age(10).build()
+ }
+ """.trimIndent()
+
+ val kotlinMainFile = myFixture.addFileToProject(
+ "kotlinModule/Main.kt",
+ kotlinMainText,
+ )
+
+ ConfigLibraryUtil.configureKotlinRuntimeAndSdk(kotlinModule, sdk)
+ ModuleRootModificationUtil.addDependency(kotlinModule, javaWithLombokModule)
+
+ myFixture.openFileInEditor(kotlinMainFile.virtualFile)
+ myFixture.checkHighlighting()
+ }
+}
\ No newline at end of file