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-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-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)
|
||||
|
||||
|
||||
@@ -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.getJavaMemberDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||
import org.jetbrains.kotlin.idea.core.KotlinNameSuggester
|
||||
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.core.*
|
||||
import org.jetbrains.kotlin.idea.intentions.RemoveCurlyBracesFromTemplateIntention
|
||||
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices
|
||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||
@@ -107,8 +104,9 @@ fun createKotlinFile(fileName: String,
|
||||
targetDir: PsiDirectory,
|
||||
packageName: String? = targetDir.getPackage()?.qualifiedName): KtFile {
|
||||
targetDir.checkCreateFile(fileName)
|
||||
val packageFqName = packageName?.let(::FqName) ?: FqName.ROOT
|
||||
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
|
||||
|
||||
+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);
|
||||
}
|
||||
|
||||
@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")
|
||||
public void testKotlin_moveTopLevelDeclarations_moveClassToPackage_MoveClassToPackage() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveClassToPackage/moveClassToPackage.test");
|
||||
|
||||
Reference in New Issue
Block a user