Move: Do not update package directives in files that don't belong to source root

#KT-7824 Fixed
This commit is contained in:
Alexey Sedunov
2015-05-26 14:43:18 +03:00
parent 6a1ae8b911
commit 5afc6235cc
2 changed files with 6 additions and 2 deletions
@@ -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()) {