mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
KTIJ-39639 IJ-CR-214162 [kotlin] Fix configuring lombok.config from subfolders with maven
(cherry picked from commit 189d1ee998428c0cb7c2055b0686b2c3f7dc10c4) (cherry picked from commit 3b70d0aec58e601554ea7990b263bb5acd965529) IJ-MR-214996 GitOrigin-RevId: 90ca1eb95ef6ad5cc53bbe2d42bc5f0b0d3b17d0
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6ff9fe5789
commit
f137a3e0ef
+19
-10
@@ -4,12 +4,17 @@ package org.jetbrains.kotlin.idea.maven.configuration
|
||||
import com.intellij.modcommand.ActionContext
|
||||
import com.intellij.modcommand.ModCommand
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.search.FilenameIndex
|
||||
import com.intellij.psi.search.GlobalSearchScopes
|
||||
import com.intellij.psi.xml.XmlFile
|
||||
import com.intellij.util.CommonProcessors
|
||||
import org.jetbrains.idea.maven.dom.model.MavenDomPlugin
|
||||
import org.jetbrains.idea.maven.dom.model.MavenDomPluginExecution
|
||||
import org.jetbrains.idea.maven.model.MavenId
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||
import org.jetbrains.kotlin.allopen.AllOpenPluginNames
|
||||
import org.jetbrains.kotlin.idea.base.util.projectScope
|
||||
import org.jetbrains.kotlin.idea.compiler.configuration.IdeKotlinVersion
|
||||
import org.jetbrains.kotlin.idea.configuration.ConfigurationResultBuilder
|
||||
import org.jetbrains.kotlin.idea.configuration.KotlinCompilerPluginProjectConfigurator
|
||||
@@ -25,7 +30,6 @@ import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator.Com
|
||||
import org.jetbrains.kotlin.idea.maven.createChildTag
|
||||
import org.jetbrains.kotlin.idea.maven.findSubTagOrCreate
|
||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.relativeTo
|
||||
|
||||
abstract class AbstractMavenKotlinCompilerPluginProjectConfigurator: KotlinCompilerPluginProjectConfigurator {
|
||||
@@ -182,15 +186,20 @@ private fun Module.findLombokConfigPath(): String? {
|
||||
val mavenProjectsManager = MavenProjectsManager.getInstance(project)
|
||||
val mavenProject = mavenProjectsManager.findProject(this) ?: return null
|
||||
val projectPath = mavenProject.directoryPath
|
||||
val configName = "lombok.config"
|
||||
val moduleConfig = projectPath.resolve(configName)
|
||||
val lombokConfig = moduleConfig.takeIf(Files::exists) ?: mavenProject.parentId
|
||||
?.let(mavenProjectsManager::findProject)
|
||||
?.directoryPath
|
||||
?.resolve(configName)
|
||||
?.takeIf(Files::exists)
|
||||
val relativeTo = lombokConfig?.relativeTo(projectPath)
|
||||
return relativeTo?.toString()
|
||||
val processor = CommonProcessors.FindFirstProcessor<VirtualFile>()
|
||||
for (scope in arrayOf(GlobalSearchScopes.directoryScope(project, mavenProject.file.parent, true), project.projectScope())) {
|
||||
FilenameIndex.processFilesByNames(
|
||||
setOf("lombok.config"),
|
||||
false,
|
||||
scope,
|
||||
null,
|
||||
processor
|
||||
)
|
||||
processor.foundValue?.let {
|
||||
return it.toNioPath().relativeTo(projectPath).toString()
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
internal fun PomFile.addAllOpenKotlinCompilerPluginPreset(kotlinPlugin: MavenDomPlugin, kotlinCompilerPluginId: String) {
|
||||
|
||||
Reference in New Issue
Block a user