Move: Do not update package directives in files that don't belong to source root
#KT-7824 Fixed
This commit is contained in:
+2
-1
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesDialog
|
||||
import com.intellij.ui.NonFocusableCheckBox
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import org.jetbrains.kotlin.idea.core.refactoring.isInJavaSourceRoot
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.psi.psiUtil.packageMatchesDirectory
|
||||
import java.awt.GridBagConstraints
|
||||
@@ -70,7 +71,7 @@ public class MoveFilesOrDirectoriesDialogWithKotlinOptions(
|
||||
super.setData(psiElements, initialTargetDirectory, helpID)
|
||||
|
||||
with (cbUpdatePackageDirective!!) {
|
||||
val jetFiles = psiElements.filterIsInstance<JetFile>()
|
||||
val jetFiles = psiElements.filterIsInstance<JetFile>().filter { it.isInJavaSourceRoot() }
|
||||
if (jetFiles.isEmpty()) {
|
||||
getParent().remove(cbUpdatePackageDirective)
|
||||
return
|
||||
|
||||
@@ -50,6 +50,7 @@ import org.jetbrains.kotlin.idea.JetFileType
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||
import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver
|
||||
import org.jetbrains.kotlin.idea.core.refactoring.isInJavaSourceRoot
|
||||
import org.jetbrains.kotlin.idea.refactoring.fqName.isImported
|
||||
import org.jetbrains.kotlin.idea.refactoring.move.moveTopLevelDeclarations.ui.MoveFilesOrDirectoriesDialogWithKotlinOptions
|
||||
import org.jetbrains.kotlin.idea.references.JetReference
|
||||
@@ -315,7 +316,9 @@ public fun moveFilesOrDirectories(
|
||||
|
||||
elementsToMove.forEach {
|
||||
MoveFilesOrDirectoriesUtil.checkMove(it, selectedDir)
|
||||
(it as? JetFile)?.let { it.updatePackageDirective = updatePackageDirective }
|
||||
if (it is JetFile && it.isInJavaSourceRoot()) {
|
||||
it.updatePackageDirective = updatePackageDirective
|
||||
}
|
||||
}
|
||||
|
||||
if (elementsToMove.isNotEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user