Move: Drop obsolete code
This commit is contained in:
+7
-12
@@ -43,7 +43,6 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
|||||||
|
|
||||||
private class MoveContext(
|
private class MoveContext(
|
||||||
val newParent: PsiDirectory,
|
val newParent: PsiDirectory,
|
||||||
val internalUsages: MoveKotlinFileHandler.InternalUsagesWrapper,
|
|
||||||
val moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor?
|
val moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor?
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -52,11 +51,10 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
|||||||
private var fileToMoveContext: MutableMap<PsiFile, MoveContext>? = null
|
private var fileToMoveContext: MutableMap<PsiFile, MoveContext>? = null
|
||||||
|
|
||||||
private fun getOrCreateMoveContextMap(): MutableMap<PsiFile, MoveContext> {
|
private fun getOrCreateMoveContextMap(): MutableMap<PsiFile, MoveContext> {
|
||||||
return fileToMoveContext
|
return fileToMoveContext ?: HashMap<PsiFile, MoveContext>().apply {
|
||||||
?: HashMap<PsiFile, MoveContext>().apply {
|
fileToMoveContext = this
|
||||||
fileToMoveContext = this
|
|
||||||
invokeOnceOnCommandFinish { fileToMoveContext = null }
|
invokeOnceOnCommandFinish { fileToMoveContext = null }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun findUsages(
|
override fun findUsages(
|
||||||
@@ -87,9 +85,7 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
|||||||
|
|
||||||
val moveDeclarationsProcessor = fileHandler.initMoveProcessor(file, moveDestination)
|
val moveDeclarationsProcessor = fileHandler.initMoveProcessor(file, moveDestination)
|
||||||
val moveContextMap = getOrCreateMoveContextMap()
|
val moveContextMap = getOrCreateMoveContextMap()
|
||||||
moveContextMap[file] = MoveContext(moveDestination,
|
moveContextMap[file] = MoveContext(moveDestination, moveDeclarationsProcessor)
|
||||||
fileHandler.findInternalUsages(file, moveDestination),
|
|
||||||
moveDeclarationsProcessor)
|
|
||||||
if (moveDeclarationsProcessor != null) {
|
if (moveDeclarationsProcessor != null) {
|
||||||
moveDestination.getPackage()?.let { newPackage ->
|
moveDestination.getPackage()?.let { newPackage ->
|
||||||
file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded()
|
file.packageDirective?.fqName = FqName(newPackage.qualifiedName).quoteIfNeeded()
|
||||||
@@ -105,7 +101,7 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
|||||||
override fun postProcessUsages(usages: Array<out UsageInfo>, newDirMapper: Function<PsiDirectory, PsiDirectory>) {
|
override fun postProcessUsages(usages: Array<out UsageInfo>, newDirMapper: Function<PsiDirectory, PsiDirectory>) {
|
||||||
val fileToMoveContext = fileToMoveContext ?: return
|
val fileToMoveContext = fileToMoveContext ?: return
|
||||||
try {
|
try {
|
||||||
val usagesToProcessAfterMove = ArrayList<FileUsagesWrapper>()
|
val usagesToProcess = ArrayList<FileUsagesWrapper>()
|
||||||
usages
|
usages
|
||||||
.filterIsInstance<FileUsagesWrapper>()
|
.filterIsInstance<FileUsagesWrapper>()
|
||||||
.forEach body@ {
|
.forEach body@ {
|
||||||
@@ -117,10 +113,9 @@ class KotlinMoveDirectoryWithClassesHelper : MoveDirectoryWithClassesHelper() {
|
|||||||
val moveDeclarationsProcessor = moveContext.moveDeclarationsProcessor ?: return@body
|
val moveDeclarationsProcessor = moveContext.moveDeclarationsProcessor ?: return@body
|
||||||
val movedFile = moveContext.newParent.findFile(file.name) ?: return@body
|
val movedFile = moveContext.newParent.findFile(file.name) ?: return@body
|
||||||
|
|
||||||
usagesToProcessAfterMove +=
|
usagesToProcess += FileUsagesWrapper(movedFile, it.usages, moveDeclarationsProcessor)
|
||||||
FileUsagesWrapper(movedFile, it.usages + moveContext.internalUsages, moveDeclarationsProcessor)
|
|
||||||
}
|
}
|
||||||
usagesToProcessAfterMove.forEach { fileHandler.retargetUsages(it.usages, it.moveDeclarationsProcessor!!) }
|
usagesToProcess.forEach { fileHandler.retargetUsages(it.usages, it.moveDeclarationsProcessor!!) }
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
this.fileToMoveContext = null
|
this.fileToMoveContext = null
|
||||||
|
|||||||
+3
-11
@@ -32,16 +32,15 @@ import org.jetbrains.kotlin.idea.core.getPackage
|
|||||||
import org.jetbrains.kotlin.idea.core.packageMatchesDirectory
|
import org.jetbrains.kotlin.idea.core.packageMatchesDirectory
|
||||||
import org.jetbrains.kotlin.idea.core.quoteIfNeeded
|
import org.jetbrains.kotlin.idea.core.quoteIfNeeded
|
||||||
import org.jetbrains.kotlin.idea.refactoring.hasIdentifiersOnly
|
import org.jetbrains.kotlin.idea.refactoring.hasIdentifiersOnly
|
||||||
import org.jetbrains.kotlin.idea.refactoring.move.*
|
import org.jetbrains.kotlin.idea.refactoring.move.ContainerChangeInfo
|
||||||
|
import org.jetbrains.kotlin.idea.refactoring.move.ContainerInfo
|
||||||
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.*
|
import org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.*
|
||||||
|
import org.jetbrains.kotlin.idea.refactoring.move.updatePackageDirective
|
||||||
import org.jetbrains.kotlin.name.FqNameUnsafe
|
import org.jetbrains.kotlin.name.FqNameUnsafe
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
|
||||||
|
|
||||||
class MoveKotlinFileHandler : MoveFileHandler() {
|
class MoveKotlinFileHandler : MoveFileHandler() {
|
||||||
internal class InternalUsagesWrapper(file: KtFile, val usages: List<UsageInfo>) : UsageInfo(file)
|
|
||||||
|
|
||||||
internal class FileInfo(file: KtFile) : UsageInfo(file)
|
internal class FileInfo(file: KtFile) : UsageInfo(file)
|
||||||
|
|
||||||
// This is special 'PsiElement' whose purpose is to wrap MoveKotlinTopLevelDeclarationsProcessor
|
// This is special 'PsiElement' whose purpose is to wrap MoveKotlinTopLevelDeclarationsProcessor
|
||||||
@@ -107,12 +106,6 @@ class MoveKotlinFileHandler : MoveFileHandler() {
|
|||||||
return !JavaProjectRootsUtil.isOutsideJavaSourceRoot(element)
|
return !JavaProjectRootsUtil.isOutsideJavaSourceRoot(element)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun findInternalUsages(file: KtFile, newParent: PsiDirectory): InternalUsagesWrapper {
|
|
||||||
val packageNameInfo = file.getPackageNameInfo(newParent, false)
|
|
||||||
val usages = packageNameInfo?.let { file.getInternalReferencesToUpdateOnPackageNameChange(it) } ?: emptyList()
|
|
||||||
return InternalUsagesWrapper(file, usages)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun findUsages(
|
override fun findUsages(
|
||||||
psiFile: PsiFile,
|
psiFile: PsiFile,
|
||||||
newParent: PsiDirectory?,
|
newParent: PsiDirectory?,
|
||||||
@@ -149,7 +142,6 @@ class MoveKotlinFileHandler : MoveFileHandler() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun retargetUsages(usageInfos: List<UsageInfo>?, moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor) {
|
fun retargetUsages(usageInfos: List<UsageInfo>?, moveDeclarationsProcessor: MoveKotlinDeclarationsProcessor) {
|
||||||
postProcessMoveUsages(usageInfos?.firstIsInstanceOrNull<InternalUsagesWrapper>()?.usages ?: emptyList())
|
|
||||||
moveDeclarationsProcessor.project.runRefactoringAndKeepDelayedRequests {
|
moveDeclarationsProcessor.project.runRefactoringAndKeepDelayedRequests {
|
||||||
usageInfos?.let { moveDeclarationsProcessor.execute(it) }
|
usageInfos?.let { moveDeclarationsProcessor.execute(it) }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user