From a11e6b2eeda79433e5569bc9029cc6fbd7ff0a91 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Tue, 28 Apr 2020 12:20:15 +0700 Subject: [PATCH] KotlinChangePackageRefactoring: fix formatting for long qualifier names #KT-38627 Fixed --- .../KotlinChangePackageRefactoring.kt | 20 +++++-------------- .../after/Y.kt | 9 +++++++++ .../before/Y.kt | 9 +++++++++ .../renameKotlinPackageWithLongType.test | 7 +++++++ .../rename/RenameTestGenerated.java | 5 +++++ 5 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 idea/testData/refactoring/rename/renameKotlinPackageWithLongType/after/Y.kt create mode 100644 idea/testData/refactoring/rename/renameKotlinPackageWithLongType/before/Y.kt create mode 100644 idea/testData/refactoring/rename/renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/changePackage/KotlinChangePackageRefactoring.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/changePackage/KotlinChangePackageRefactoring.kt index 599172959d3..9e00d04fe1a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/changePackage/KotlinChangePackageRefactoring.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/changePackage/KotlinChangePackageRefactoring.kt @@ -1,24 +1,13 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ package org.jetbrains.kotlin.idea.refactoring.move.changePackage import com.intellij.refactoring.RefactoringBundle import org.jetbrains.kotlin.idea.KotlinBundle -import org.jetbrains.kotlin.idea.codeInsight.shorten.runRefactoringAndKeepDelayedRequests +import org.jetbrains.kotlin.idea.codeInsight.shorten.performDelayedRefactoringRequests import org.jetbrains.kotlin.idea.core.quoteIfNeeded import org.jetbrains.kotlin.idea.core.util.runSynchronouslyWithProgress import org.jetbrains.kotlin.idea.refactoring.move.ContainerChangeInfo @@ -58,7 +47,8 @@ class KotlinChangePackageRefactoring(val file: KtFile) { project.executeWriteCommand(KotlinBundle.message("text.change.file.package.to.0", newFqName)) { packageDirective.fqName = newFqName.quoteIfNeeded() postProcessMoveUsages(internalUsages) - project.runRefactoringAndKeepDelayedRequests { declarationProcessor.execute(declarationUsages) } + performDelayedRefactoringRequests(project) + declarationProcessor.execute(declarationUsages) } } } diff --git a/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/after/Y.kt b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/after/Y.kt new file mode 100644 index 00000000000..51a180cbad3 --- /dev/null +++ b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/after/Y.kt @@ -0,0 +1,9 @@ +package cccc.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz + +class SomeVeryImportantClass { + fun getSomeData(): Any? = null + + companion object { + fun getInstance(o: Any): SomeVeryImportantClass = SomeVeryImportantClass() + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/before/Y.kt b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/before/Y.kt new file mode 100644 index 00000000000..06300dd8e64 --- /dev/null +++ b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/before/Y.kt @@ -0,0 +1,9 @@ +package cccc.ssss + +class SomeVeryImportantClass { + fun getSomeData(): Any? = null + + companion object { + fun getInstance(o: Any): SomeVeryImportantClass = SomeVeryImportantClass() + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test new file mode 100644 index 00000000000..f95c0569991 --- /dev/null +++ b/idea/testData/refactoring/rename/renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test @@ -0,0 +1,7 @@ +{ + "type": "KOTLIN_PACKAGE", + "fqn": "cccc.ssss", + "newName": "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", + "comment": "KT-35338", + "mainFile": "Y.kt" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java index 08eb2f3497a..bdf08b5e480 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java @@ -888,6 +888,11 @@ public class RenameTestGenerated extends AbstractRenameTest { runTest("idea/testData/refactoring/rename/renameKotlinPackageFunctionFromJavaNewFacade/renameKotlinPackageFunctionFromJava.test"); } + @TestMetadata("renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test") + public void testRenameKotlinPackageWithLongType_RenameKotlinPackageWithLongType() throws Exception { + runTest("idea/testData/refactoring/rename/renameKotlinPackageWithLongType/renameKotlinPackageWithLongType.test"); + } + @TestMetadata("renameKotlinParameterWithGetterJvmName/renameKotlinParameterWithGetterJvmName.test") public void testRenameKotlinParameterWithGetterJvmName_RenameKotlinParameterWithGetterJvmName() throws Exception { runTest("idea/testData/refactoring/rename/renameKotlinParameterWithGetterJvmName/renameKotlinParameterWithGetterJvmName.test");