KTIJ-39233 KTIJ-39286 [kotlin] Fix NPE

(cherry picked from commit 5f95557f5ef9c3e2f7915b5a2df6a362252a1726)

IJ-CR-209652

GitOrigin-RevId: 64a1bd59984d470a57072d6bcd71218ed5ce97da
This commit is contained in:
Vladimir Dolzhenko
2026-06-24 14:35:13 +00:00
committed by intellij-monorepo-bot
parent 1435ff8387
commit 73f543d3d5
@@ -117,7 +117,7 @@ internal fun PsiFile.configureKaptForLombokIfNeeded(sourceModule: Module, change
internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) {
val configFile = sourceModule.findLombokConfigFile(this) ?: return
val parentDirectory = virtualFile.parent ?: return
val parentDirectory = (virtualFile ?: originalFile.virtualFile )?.parent ?: return
val relativePath = VfsUtilCore.getRelativePath(configFile, parentDirectory, '/') ?: return
GradleBuildScriptSupport.getManipulator(this).configurePluginOptions(
@@ -127,9 +127,11 @@ internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, c
)
}
private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? =
buildScript.virtualFile?.parent?.findChild("lombok.config")
private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? {
val virtualFile = buildScript.virtualFile ?: buildScript.originalFile.virtualFile
return virtualFile?.parent?.findChild("lombok.config")
?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config")
}
private fun String.isLombokProcessorPath(): Boolean =
substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)