Move: Quote package name (if necessary) when moving declarations to new file
#KT-13385 Fixed
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
- [`KT-13383`](https://youtrack.jetbrains.com/issue/KT-13383), [`KT-13379`](https://youtrack.jetbrains.com/issue/KT-13379) Override/Implement Members: Do not make return type non-nullable if base return type is explicitly nullable
|
- [`KT-13383`](https://youtrack.jetbrains.com/issue/KT-13383), [`KT-13379`](https://youtrack.jetbrains.com/issue/KT-13379) Override/Implement Members: Do not make return type non-nullable if base return type is explicitly nullable
|
||||||
- [`KT-13244`](https://youtrack.jetbrains.com/issue/KT-13244) Override/Implement Members: Do not expand type aliases in the generated members
|
- [`KT-13244`](https://youtrack.jetbrains.com/issue/KT-13244) Override/Implement Members: Do not expand type aliases in the generated members
|
||||||
- [`KT-13218`](https://youtrack.jetbrains.com/issue/KT-13218) Extract Function: Fix AssertionError on callable references
|
- [`KT-13218`](https://youtrack.jetbrains.com/issue/KT-13218) Extract Function: Fix AssertionError on callable references
|
||||||
|
- [`KT-13385`](https://youtrack.jetbrains.com/issue/KT-13385) Move: Quote package name (if necessary) when moving declarations to new file
|
||||||
|
|
||||||
## 1.1-M01 (EAP-1)
|
## 1.1-M01 (EAP-1)
|
||||||
|
|
||||||
|
|||||||
@@ -67,10 +67,7 @@ import org.jetbrains.kotlin.idea.KotlinFileType
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
import org.jetbrains.kotlin.idea.caches.resolve.analyze
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getJavaMemberDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.getJavaMemberDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||||
import org.jetbrains.kotlin.idea.core.KotlinNameSuggester
|
import org.jetbrains.kotlin.idea.core.*
|
||||||
import org.jetbrains.kotlin.idea.core.ShortenReferences
|
|
||||||
import org.jetbrains.kotlin.idea.core.getPackage
|
|
||||||
import org.jetbrains.kotlin.idea.core.quoteIfNeeded
|
|
||||||
import org.jetbrains.kotlin.idea.intentions.RemoveCurlyBracesFromTemplateIntention
|
import org.jetbrains.kotlin.idea.intentions.RemoveCurlyBracesFromTemplateIntention
|
||||||
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||||
@@ -107,8 +104,9 @@ fun createKotlinFile(fileName: String,
|
|||||||
targetDir: PsiDirectory,
|
targetDir: PsiDirectory,
|
||||||
packageName: String? = targetDir.getPackage()?.qualifiedName): KtFile {
|
packageName: String? = targetDir.getPackage()?.qualifiedName): KtFile {
|
||||||
targetDir.checkCreateFile(fileName)
|
targetDir.checkCreateFile(fileName)
|
||||||
|
val packageFqName = packageName?.let(::FqName) ?: FqName.ROOT
|
||||||
val file = PsiFileFactory.getInstance(targetDir.project).createFileFromText(
|
val file = PsiFileFactory.getInstance(targetDir.project).createFileFromText(
|
||||||
fileName, KotlinFileType.INSTANCE, if (!packageName.isNullOrBlank()) "package $packageName \n\n" else ""
|
fileName, KotlinFileType.INSTANCE, if (!packageFqName.isRoot) "package ${packageFqName.quoteSegmentsIfNeeded()} \n\n" else ""
|
||||||
)
|
)
|
||||||
|
|
||||||
return targetDir.add(file) as KtFile
|
return targetDir.add(file) as KtFile
|
||||||
|
|||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package p
|
||||||
|
|
||||||
|
import q.`in`.`fun`.To
|
||||||
|
|
||||||
|
class From : To() {}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
package q.`in`.`fun`
|
||||||
|
|
||||||
|
open class To {}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package q.`in`.`fun`
|
||||||
|
|
||||||
|
import q.`in`.`fun`.To
|
||||||
|
|
||||||
|
class Usage : To() {}
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
package p
|
||||||
|
|
||||||
|
open class <caret>To {}
|
||||||
|
class From : To() {}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package q.`in`.`fun`
|
||||||
|
|
||||||
|
import p.To
|
||||||
|
|
||||||
|
class Usage : To() {}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"mainFile": "p/main.kt",
|
||||||
|
"type": "MOVE_KOTLIN_TOP_LEVEL_DECLARATIONS",
|
||||||
|
"targetPackage": "q.in.fun"
|
||||||
|
}
|
||||||
@@ -473,6 +473,12 @@ public class MoveTestGenerated extends AbstractMoveTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kotlin/moveTopLevelDeclarations/moveClassToNewFileAndQuotePackage/moveClassToNewFileAndQuotePackage.test")
|
||||||
|
public void testKotlin_moveTopLevelDeclarations_moveClassToNewFileAndQuotePackage_MoveClassToNewFileAndQuotePackage() throws Exception {
|
||||||
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveClassToNewFileAndQuotePackage/moveClassToNewFileAndQuotePackage.test");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kotlin/moveTopLevelDeclarations/moveClassToPackage/moveClassToPackage.test")
|
@TestMetadata("kotlin/moveTopLevelDeclarations/moveClassToPackage/moveClassToPackage.test")
|
||||||
public void testKotlin_moveTopLevelDeclarations_moveClassToPackage_MoveClassToPackage() throws Exception {
|
public void testKotlin_moveTopLevelDeclarations_moveClassToPackage_MoveClassToPackage() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveClassToPackage/moveClassToPackage.test");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveClassToPackage/moveClassToPackage.test");
|
||||||
|
|||||||
Reference in New Issue
Block a user