mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] Move ConflictUsages to common refactoring module
^KTIJ-23273 Also makes class more readable. GitOrigin-RevId: 1337ebdb7d4fa633a9305880ca13576268e7dafe
This commit is contained in:
committed by
intellij-monorepo-bot
parent
46f46a4c0a
commit
08e2b8f4d6
+2
-1
@@ -13,6 +13,7 @@ import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectori
|
||||
import com.intellij.usageView.UsageInfo
|
||||
import com.intellij.usageView.UsageViewDescriptor
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveConflictUsages
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveConflictsFoundException
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveFilesWithDeclarationsViewDescriptor
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveFilesOrDirectories.allElementsToMove
|
||||
@@ -52,7 +53,7 @@ class KotlinAwareMoveFilesOrDirectoriesProcessor @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun preprocessUsages(refUsages: Ref<Array<UsageInfo>>): Boolean {
|
||||
val (conflicts, usages) = MoveToKotlinFileProcessor.preprocessConflictUsages(refUsages)
|
||||
val (conflicts, usages) = MoveConflictUsages.preprocess(refUsages)
|
||||
return showConflicts(conflicts, usages)
|
||||
}
|
||||
|
||||
|
||||
+2
-21
@@ -14,7 +14,7 @@ import com.intellij.usageView.UsageViewDescriptor
|
||||
import com.intellij.util.containers.MultiMap
|
||||
import com.intellij.util.text.UniqueNameGenerator
|
||||
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveConflictUsageInfo
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveConflictUsages
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveConflictsFoundException
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.MoveFilesWithDeclarationsViewDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -46,7 +46,7 @@ class MoveToKotlinFileProcessor @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun preprocessUsages(refUsages: Ref<Array<UsageInfo>>): Boolean {
|
||||
val (conflicts, usages) = preprocessConflictUsages(refUsages)
|
||||
val (conflicts, usages) = MoveConflictUsages.preprocess(refUsages)
|
||||
return showConflicts(conflicts, usages)
|
||||
}
|
||||
|
||||
@@ -71,23 +71,4 @@ class MoveToKotlinFileProcessor @JvmOverloads constructor(
|
||||
super.performRefactoring(usages)
|
||||
sourceFile.name = targetFileName
|
||||
}
|
||||
|
||||
companion object {
|
||||
data class ConflictUsages(val conflicts: MultiMap<PsiElement, String>, @Suppress("ArrayInDataClass") val usages: Array<UsageInfo>)
|
||||
|
||||
fun preprocessConflictUsages(refUsages: Ref<Array<UsageInfo>>): ConflictUsages {
|
||||
val usages: Array<UsageInfo> = refUsages.get()
|
||||
|
||||
val (conflictUsages, usagesToProcess) = usages.partition { it is MoveConflictUsageInfo }
|
||||
|
||||
val conflicts = MultiMap<PsiElement, String>()
|
||||
for (conflictUsage in conflictUsages) {
|
||||
conflicts.putValues(conflictUsage.element, (conflictUsage as MoveConflictUsageInfo).messages)
|
||||
}
|
||||
|
||||
refUsages.set(usagesToProcess.toTypedArray())
|
||||
|
||||
return ConflictUsages(conflicts, usages)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.refactoring.move
|
||||
|
||||
import com.intellij.openapi.util.Ref
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.usageView.UsageInfo
|
||||
import com.intellij.util.containers.MultiMap
|
||||
|
||||
data class MoveConflictUsages(val conflicts: MultiMap<PsiElement, String>, val usages: Array<UsageInfo>) {
|
||||
companion object {
|
||||
fun preprocess(refUsages: Ref<Array<UsageInfo>>): Pair<MultiMap<PsiElement, String>, Array<UsageInfo>> {
|
||||
val usages: Array<UsageInfo> = refUsages.get()
|
||||
|
||||
val (conflictUsages, usagesToProcess) = usages.partition { it is MoveConflictUsageInfo }
|
||||
|
||||
val conflicts = MultiMap<PsiElement, String>()
|
||||
for (conflictUsage in conflictUsages) {
|
||||
conflicts.putValues(conflictUsage.element, (conflictUsage as MoveConflictUsageInfo).messages)
|
||||
}
|
||||
|
||||
refUsages.set(usagesToProcess.toTypedArray())
|
||||
|
||||
return Pair(conflicts, usages)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user