KT-12558 Configure Kotlin in Project: Maven: Undo could revert changes in all poms
This commit is contained in:
@@ -16,7 +16,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.maven
|
package org.jetbrains.kotlin.idea.maven
|
||||||
|
|
||||||
import com.intellij.openapi.components.*
|
import com.intellij.openapi.components.PersistentStateComponent
|
||||||
|
import com.intellij.openapi.components.State
|
||||||
|
import com.intellij.openapi.components.Storage
|
||||||
|
import com.intellij.openapi.components.StoragePathMacros
|
||||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.roots.OrderEnumerator
|
import com.intellij.openapi.roots.OrderEnumerator
|
||||||
@@ -30,7 +33,6 @@ import org.jetbrains.idea.maven.model.MavenPlugin
|
|||||||
import org.jetbrains.idea.maven.project.*
|
import org.jetbrains.idea.maven.project.*
|
||||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||||
import org.jetbrains.kotlin.idea.util.projectStructure.findLibrary
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -80,6 +80,7 @@ abstract class KotlinMavenConfigurator protected constructor(private val stdlibA
|
|||||||
dialog.show()
|
dialog.show()
|
||||||
if (!dialog.isOK) return
|
if (!dialog.isOK) return
|
||||||
|
|
||||||
|
WriteCommandAction.runWriteCommandAction(project) {
|
||||||
val collector = createConfigureKotlinNotificationCollector(project)
|
val collector = createConfigureKotlinNotificationCollector(project)
|
||||||
for (module in excludeMavenChildrenModules(project, dialog.modulesToConfigure)) {
|
for (module in excludeMavenChildrenModules(project, dialog.modulesToConfigure)) {
|
||||||
val file = findModulePomFile(module)
|
val file = findModulePomFile(module)
|
||||||
@@ -93,6 +94,7 @@ abstract class KotlinMavenConfigurator protected constructor(private val stdlibA
|
|||||||
}
|
}
|
||||||
collector.showNotification()
|
collector.showNotification()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected abstract fun isKotlinModule(module: Module): Boolean
|
protected abstract fun isKotlinModule(module: Module): Boolean
|
||||||
protected abstract fun isRelevantGoal(goalName: String): Boolean
|
protected abstract fun isRelevantGoal(goalName: String): Boolean
|
||||||
@@ -112,7 +114,6 @@ abstract class KotlinMavenConfigurator protected constructor(private val stdlibA
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteCommandAction.runWriteCommandAction(module.project) {
|
|
||||||
val pom = PomFile(file as XmlFile)
|
val pom = PomFile(file as XmlFile)
|
||||||
pom.addProperty(KOTLIN_VERSION_PROPERTY, version)
|
pom.addProperty(KOTLIN_VERSION_PROPERTY, version)
|
||||||
|
|
||||||
@@ -138,7 +139,6 @@ abstract class KotlinMavenConfigurator protected constructor(private val stdlibA
|
|||||||
createExecutions(pom, plugin, module)
|
createExecutions(pom, plugin, module)
|
||||||
|
|
||||||
CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement<PsiFile>(file)
|
CodeInsightUtilCore.forcePsiPostprocessAndRestoreElement<PsiFile>(file)
|
||||||
}
|
|
||||||
|
|
||||||
collector.addMessage(virtualFile.path + " was modified")
|
collector.addMessage(virtualFile.path + " was modified")
|
||||||
}
|
}
|
||||||
|
|||||||
-1
@@ -199,5 +199,4 @@ private fun MavenPlugin.isKotlinMavenPlugin() = groupId == KotlinMavenConfigurat
|
|||||||
|
|
||||||
private fun MavenDomGoal.isJsGoal() = rawText == PomFile.KotlinGoals.Js || rawText == PomFile.KotlinGoals.TestJs
|
private fun MavenDomGoal.isJsGoal() = rawText == PomFile.KotlinGoals.Js || rawText == PomFile.KotlinGoals.TestJs
|
||||||
|
|
||||||
private fun List<MavenDomPluginExecution>.atPhase(phase: String) = filter { it.phase.stringValue == phase }
|
|
||||||
private fun List<MavenDomPluginExecution>.notAtPhase(phase: String) = filter { it.phase.stringValue != phase }
|
private fun List<MavenDomPluginExecution>.notAtPhase(phase: String) = filter { it.phase.stringValue != phase }
|
||||||
|
|||||||
-10
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.maven.inspections
|
package org.jetbrains.kotlin.idea.maven.inspections
|
||||||
|
|
||||||
import com.intellij.codeInsight.daemon.HighlightDisplayKey
|
|
||||||
import com.intellij.codeInsight.daemon.QuickFixActionRegistrar
|
import com.intellij.codeInsight.daemon.QuickFixActionRegistrar
|
||||||
import com.intellij.codeInsight.intention.IntentionAction
|
import com.intellij.codeInsight.intention.IntentionAction
|
||||||
import com.intellij.codeInsight.intention.LowPriorityAction
|
import com.intellij.codeInsight.intention.LowPriorityAction
|
||||||
@@ -25,8 +24,6 @@ import com.intellij.openapi.editor.Editor
|
|||||||
import com.intellij.openapi.module.ModuleUtilCore
|
import com.intellij.openapi.module.ModuleUtilCore
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.roots.ProjectRootManager
|
import com.intellij.openapi.roots.ProjectRootManager
|
||||||
import com.intellij.openapi.util.Condition
|
|
||||||
import com.intellij.openapi.util.TextRange
|
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.SmartPsiElementPointer
|
import com.intellij.psi.SmartPsiElementPointer
|
||||||
@@ -35,21 +32,14 @@ import org.jetbrains.idea.maven.dom.MavenDomUtil
|
|||||||
import org.jetbrains.idea.maven.indices.MavenArtifactSearchDialog
|
import org.jetbrains.idea.maven.indices.MavenArtifactSearchDialog
|
||||||
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
import org.jetbrains.idea.maven.project.MavenProjectsManager
|
||||||
import org.jetbrains.idea.maven.utils.MavenArtifactScope
|
import org.jetbrains.idea.maven.utils.MavenArtifactScope
|
||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
|
||||||
import org.jetbrains.kotlin.idea.maven.PomFile
|
import org.jetbrains.kotlin.idea.maven.PomFile
|
||||||
import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.IntentionActionPriority
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.KotlinIntentionActionFactoryWithDelegate
|
|
||||||
import org.jetbrains.kotlin.idea.quickfix.QuickFixWithDelegateFactory
|
|
||||||
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
import org.jetbrains.kotlin.idea.references.KtSimpleNameReference
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.psi.KtImportDirective
|
import org.jetbrains.kotlin.psi.KtImportDirective
|
||||||
import org.jetbrains.kotlin.psi.KtNameReferenceExpression
|
|
||||||
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
import org.jetbrains.kotlin.psi.KtSimpleNameExpression
|
||||||
import org.jetbrains.kotlin.psi.KtTypeReference
|
import org.jetbrains.kotlin.psi.KtTypeReference
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
|
import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class KotlinMavenUnresolvedReferenceQuickFixProvider : UnresolvedReferenceQuickFixProvider<KtSimpleNameReference>() {
|
class KotlinMavenUnresolvedReferenceQuickFixProvider : UnresolvedReferenceQuickFixProvider<KtSimpleNameReference>() {
|
||||||
override fun getReferenceClass(): Class<KtSimpleNameReference> = KtSimpleNameReference::class.java
|
override fun getReferenceClass(): Class<KtSimpleNameReference> = KtSimpleNameReference::class.java
|
||||||
|
|||||||
+2
-3
@@ -18,10 +18,9 @@ package org.jetbrains.kotlin.idea.maven
|
|||||||
|
|
||||||
import com.google.gson.JsonParser
|
import com.google.gson.JsonParser
|
||||||
import org.jetbrains.idea.maven.model.MavenArchetype
|
import org.jetbrains.idea.maven.model.MavenArchetype
|
||||||
import org.jetbrains.kotlin.idea.maven.KotlinMavenArchetypesProvider
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertTrue
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
import org.junit.Assert.*
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class KotlinMavenArchetypesProviderTest {
|
class KotlinMavenArchetypesProviderTest {
|
||||||
|
|||||||
+3
-3
@@ -16,14 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.maven.configuration
|
package org.jetbrains.kotlin.idea.maven.configuration
|
||||||
|
|
||||||
|
import com.intellij.openapi.command.WriteCommandAction
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import org.jetbrains.idea.maven.model.MavenConstants
|
import org.jetbrains.idea.maven.model.MavenConstants
|
||||||
import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest
|
import org.jetbrains.kotlin.idea.configuration.AbstractConfigureProjectByChangingFileTest
|
||||||
import org.jetbrains.kotlin.idea.configuration.NotificationMessageCollector
|
import org.jetbrains.kotlin.idea.configuration.NotificationMessageCollector
|
||||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinJavaMavenConfigurator
|
|
||||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinJavascriptMavenConfigurator
|
|
||||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
|
||||||
|
|
||||||
abstract class AbstractMavenConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest<KotlinMavenConfigurator>() {
|
abstract class AbstractMavenConfigureProjectByChangingFileTest : AbstractConfigureProjectByChangingFileTest<KotlinMavenConfigurator>() {
|
||||||
fun doTestWithMaven(path: String) {
|
fun doTestWithMaven(path: String) {
|
||||||
@@ -37,6 +35,8 @@ abstract class AbstractMavenConfigureProjectByChangingFileTest : AbstractConfigu
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinMavenConfigurator, version: String, collector: NotificationMessageCollector) {
|
override fun runConfigurator(module: Module, file: PsiFile, configurator: KotlinMavenConfigurator, version: String, collector: NotificationMessageCollector) {
|
||||||
|
WriteCommandAction.runWriteCommandAction(module.project) {
|
||||||
configurator.changePomFile(module, file, version, collector)
|
configurator.changePomFile(module, file, version, collector)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user