Move: Do not search/process usages if package is not changed
This commit is contained in:
+1
@@ -42,6 +42,7 @@ public class KotlinChangePackageRefactoring(val file: JetFile) {
|
|||||||
val declarationProcessor = MoveKotlinTopLevelDeclarationsProcessor(
|
val declarationProcessor = MoveKotlinTopLevelDeclarationsProcessor(
|
||||||
project,
|
project,
|
||||||
MoveKotlinTopLevelDeclarationsOptions(
|
MoveKotlinTopLevelDeclarationsOptions(
|
||||||
|
sourceFile = file,
|
||||||
elementsToMove = file.getDeclarations().filterIsInstance<JetNamedDeclaration>(),
|
elementsToMove = file.getDeclarations().filterIsInstance<JetNamedDeclaration>(),
|
||||||
moveTarget = object: KotlinMoveTarget {
|
moveTarget = object: KotlinMoveTarget {
|
||||||
override val packageWrapper = PackageWrapper(file.getManager(), newFqName.asString())
|
override val packageWrapper = PackageWrapper(file.getManager(), newFqName.asString())
|
||||||
|
|||||||
+1
@@ -70,6 +70,7 @@ public class MoveKotlinFileHandler : MoveFileHandler() {
|
|||||||
val declarationMoveProcessor = MoveKotlinTopLevelDeclarationsProcessor(
|
val declarationMoveProcessor = MoveKotlinTopLevelDeclarationsProcessor(
|
||||||
project,
|
project,
|
||||||
MoveKotlinTopLevelDeclarationsOptions(
|
MoveKotlinTopLevelDeclarationsOptions(
|
||||||
|
sourceFile = psiFile,
|
||||||
elementsToMove = psiFile.getDeclarations().filterIsInstance<JetNamedDeclaration>(),
|
elementsToMove = psiFile.getDeclarations().filterIsInstance<JetNamedDeclaration>(),
|
||||||
moveTarget = DeferredJetFileKotlinMoveTarget(project, packageNameInfo.newPackageName) {
|
moveTarget = DeferredJetFileKotlinMoveTarget(project, packageNameInfo.newPackageName) {
|
||||||
MoveFilesOrDirectoriesUtil.doMoveFile(psiFile, newParent)
|
MoveFilesOrDirectoriesUtil.doMoveFile(psiFile, newParent)
|
||||||
|
|||||||
+4
@@ -80,6 +80,7 @@ trait Mover: (originalElement: JetNamedDeclaration, targetFile: JetFile) -> JetN
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class MoveKotlinTopLevelDeclarationsOptions(
|
public class MoveKotlinTopLevelDeclarationsOptions(
|
||||||
|
val sourceFile: JetFile,
|
||||||
val elementsToMove: Collection<JetNamedDeclaration>,
|
val elementsToMove: Collection<JetNamedDeclaration>,
|
||||||
val moveTarget: KotlinMoveTarget,
|
val moveTarget: KotlinMoveTarget,
|
||||||
val searchInCommentsAndStrings: Boolean = true,
|
val searchInCommentsAndStrings: Boolean = true,
|
||||||
@@ -217,6 +218,9 @@ public class MoveKotlinTopLevelDeclarationsProcessor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No need to find and process usages if package is not changed
|
||||||
|
if (options.sourceFile.getPackageFqName().asString() == newPackageName) return UsageInfo.EMPTY_ARRAY
|
||||||
|
|
||||||
val usages = collectUsages()
|
val usages = collectUsages()
|
||||||
collectConflictsInUsages(usages)
|
collectConflictsInUsages(usages)
|
||||||
collectConflictsInDeclarations()
|
collectConflictsInDeclarations()
|
||||||
|
|||||||
+1
-1
@@ -565,7 +565,7 @@ public class MoveKotlinTopLevelDeclarationsDialog extends RefactoringDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MoveKotlinTopLevelDeclarationsOptions options = new MoveKotlinTopLevelDeclarationsOptions(
|
MoveKotlinTopLevelDeclarationsOptions options = new MoveKotlinTopLevelDeclarationsOptions(
|
||||||
elementsToMove, target, isSearchInComments(), isSearchInNonJavaFiles(), true, moveCallback
|
sourceFile, elementsToMove, target, isSearchInComments(), isSearchInNonJavaFiles(), true, moveCallback
|
||||||
);
|
);
|
||||||
invokeRefactoring(new MoveKotlinTopLevelDeclarationsProcessor(myProject, options, Mover.Default.INSTANCE$));
|
invokeRefactoring(new MoveKotlinTopLevelDeclarationsProcessor(myProject, options, Mover.Default.INSTANCE$));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ enum class MoveAction {
|
|||||||
JetFileKotlinMoveTarget(PsiManager.getInstance(project).findFile(rootDir.findFileByRelativePath(filePath)!!) as JetFile)
|
JetFileKotlinMoveTarget(PsiManager.getInstance(project).findFile(rootDir.findFileByRelativePath(filePath)!!) as JetFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
val options = MoveKotlinTopLevelDeclarationsOptions(listOf(elementToMove), moveTarget)
|
val options = MoveKotlinTopLevelDeclarationsOptions(mainFile as JetFile, listOf(elementToMove), moveTarget)
|
||||||
MoveKotlinTopLevelDeclarationsProcessor(mainFile.getProject(), options).run()
|
MoveKotlinTopLevelDeclarationsProcessor(mainFile.getProject(), options).run()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user