KTIJ-39233 [kotlin] Fix NPE

(cherry picked from commit 26315777cc97fb70179ff7c6c96ac775bcddb43f)

IJ-CR-209652

GitOrigin-RevId: b563e884e0ad7e557a86a2c761005ea052bd7451
This commit is contained in:
Vladimir Dolzhenko
2026-06-24 14:35:13 +00:00
committed by intellij-monorepo-bot
parent 7ea6b1d1a3
commit 1435ff8387
@@ -5,6 +5,7 @@ import com.intellij.compiler.CompilerConfiguration
import com.intellij.java.library.JavaLibraryUtil
import com.intellij.openapi.module.Module
import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.idea.base.util.isGradleModule
@@ -115,19 +116,20 @@ internal fun PsiFile.configureKaptForLombokIfNeeded(sourceModule: Module, change
}
internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
val configFile = sourceModule.findLombokConfigFile(this) ?: return
val relativePath = VfsUtilCore.getRelativePath(configFile, virtualFile.parent, '/') ?: return
val configFile = sourceModule.findLombokConfigFile(this) ?: return
val parentDirectory = virtualFile.parent ?: return
val relativePath = VfsUtilCore.getRelativePath(configFile, parentDirectory, '/') ?: return
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
"kotlinLombok",
changedFiles,
"lombokConfigurationFile(file(\"$relativePath\"))",
)
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
"kotlinLombok",
changedFiles,
"lombokConfigurationFile(file(\"$relativePath\"))",
)
}
private fun Module.findLombokConfigFile(buildScript: PsiFile) =
buildScript.virtualFile.parent.findChild("lombok.config")
?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config")
private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? =
buildScript.virtualFile?.parent?.findChild("lombok.config")
?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config")
private fun String.isLombokProcessorPath(): Boolean =
substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)