diff --git a/idea/resources/META-INF/plugin-common.xml b/idea/resources/META-INF/plugin-common.xml
index 88fa2c92b5f..2a337f41a78 100644
--- a/idea/resources/META-INF/plugin-common.xml
+++ b/idea/resources/META-INF/plugin-common.xml
@@ -1217,7 +1217,7 @@
- org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention
+ org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention
Kotlin
diff --git a/idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/after.kt.template b/idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/after.kt.template
similarity index 100%
rename from idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/after.kt.template
rename to idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/after.kt.template
diff --git a/idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/before.kt.template b/idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/before.kt.template
similarity index 100%
rename from idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/before.kt.template
rename to idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/before.kt.template
diff --git a/idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/description.html b/idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/description.html
new file mode 100644
index 00000000000..03d94452d78
--- /dev/null
+++ b/idea/resources/intentionDescriptions/ExtractDeclarationFromCurrentFileIntention/description.html
@@ -0,0 +1,5 @@
+
+
+This intention extracts a top-level class or object from current file and places it in a separate one in the same package and directory.
+
+
\ No newline at end of file
diff --git a/idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/description.html b/idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/description.html
deleted file mode 100644
index f8a536ac78f..00000000000
--- a/idea/resources/intentionDescriptions/MoveDeclarationToSeparateFileIntention/description.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-This intention moves a top-level class or object to a separate file in the same package and directory.
-
-
\ No newline at end of file
diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveDeclarationToSeparateFileIntention.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ExtractDeclarationFromCurrentFileIntention.kt
similarity index 76%
rename from idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveDeclarationToSeparateFileIntention.kt
rename to idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ExtractDeclarationFromCurrentFileIntention.kt
index fd9fe1caf49..83ad78f4fd6 100644
--- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/MoveDeclarationToSeparateFileIntention.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/ExtractDeclarationFromCurrentFileIntention.kt
@@ -39,9 +39,9 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset
import org.jetbrains.kotlin.psi.psiUtil.startOffset
import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperClassNotAny
-class MoveDeclarationToSeparateFileIntention :
- SelfTargetingRangeIntention(KtClassOrObject::class.java, "Move declaration to separate file"),
- LowPriorityAction {
+class ExtractDeclarationFromCurrentFileIntention :
+ SelfTargetingRangeIntention(KtClassOrObject::class.java, "Extract declaration from current file"),
+ LowPriorityAction {
override fun applicabilityRange(element: KtClassOrObject): TextRange? {
if (element.name == null) return null
if (element.parent !is KtFile) return null
@@ -60,7 +60,7 @@ class MoveDeclarationToSeparateFileIntention :
val startOffset = keyword?.startOffset ?: return null
val endOffset = element.nameIdentifier?.endOffset ?: return null
- text = "Move '${element.name}' to separate file"
+ text = "Extract '${element.name}' from current file"
return TextRange(startOffset, endOffset)
}
@@ -84,15 +84,15 @@ class MoveDeclarationToSeparateFileIntention :
// If automatic move is not possible, fall back to full-fledged Move Declarations refactoring
ApplicationManager.getApplication().invokeLater {
MoveKotlinTopLevelDeclarationsDialog(
- project,
- setOf(element),
- packageName.asString(),
- directory,
- targetFile as? KtFile,
- true,
- true,
- true,
- null
+ project,
+ setOf(element),
+ packageName.asString(),
+ directory,
+ targetFile as? KtFile,
+ true,
+ true,
+ true,
+ null
).show()
}
return
@@ -101,18 +101,18 @@ class MoveDeclarationToSeparateFileIntention :
createKotlinFile(targetFileName, directory, packageName.asString())
}
val descriptor = MoveDeclarationsDescriptor(
- project = project,
- moveSource = MoveSource(element),
- moveTarget = moveTarget,
- delegate = MoveDeclarationsDelegate.TopLevel,
- searchInCommentsAndStrings = false,
- searchInNonCode = false,
- moveCallback = MoveCallback {
- val newFile = directory.findFile(targetFileName) as KtFile
- val newDeclaration = newFile.declarations.first()
- NavigationUtil.activateFileWithPsiElement(newFile)
- FileEditorManager.getInstance(project).selectedTextEditor?.moveCaret(newDeclaration.startOffset + originalOffset)
- }
+ project = project,
+ moveSource = MoveSource(element),
+ moveTarget = moveTarget,
+ delegate = MoveDeclarationsDelegate.TopLevel,
+ searchInCommentsAndStrings = false,
+ searchInNonCode = false,
+ moveCallback = MoveCallback {
+ val newFile = directory.findFile(targetFileName) as KtFile
+ val newDeclaration = newFile.declarations.first()
+ NavigationUtil.activateFileWithPsiElement(newFile)
+ FileEditorManager.getInstance(project).selectedTextEditor?.moveCaret(newDeclaration.startOffset + originalOffset)
+ }
)
MoveKotlinDeclarationsProcessor(descriptor).run()
diff --git a/idea/testData/intentions/moveDeclarationToSeparateFile/.intention b/idea/testData/intentions/moveDeclarationToSeparateFile/.intention
index 86161fabce1..8db10345705 100644
--- a/idea/testData/intentions/moveDeclarationToSeparateFile/.intention
+++ b/idea/testData/intentions/moveDeclarationToSeparateFile/.intention
@@ -1 +1 @@
-org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention
\ No newline at end of file
+org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention
\ No newline at end of file
diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToExistingFile/moveClassToExistingFile.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToExistingFile/moveClassToExistingFile.test
index 64dceadea3f..fcde97abdde 100644
--- a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToExistingFile/moveClassToExistingFile.test
+++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToExistingFile/moveClassToExistingFile.test
@@ -1,4 +1,4 @@
{
"mainFile": "source/test.kt",
- "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention"
+ "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention"
}
\ No newline at end of file
diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFile/moveClassToFile.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFile/moveClassToFile.test
index 64dceadea3f..fcde97abdde 100644
--- a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFile/moveClassToFile.test
+++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFile/moveClassToFile.test
@@ -1,4 +1,4 @@
{
"mainFile": "source/test.kt",
- "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention"
+ "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention"
}
\ No newline at end of file
diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test
index 8ec8abf567b..08d0b914bd3 100644
--- a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test
+++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveClassToFileInDefaultPackage/moveClassToFileInDefaultPackage.test
@@ -1,4 +1,4 @@
{
"mainFile": "test.kt",
- "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention"
+ "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention"
}
\ No newline at end of file
diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test
index 0a55778dce5..9413b44b6c8 100644
--- a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test
+++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/moveSingleToFile/moveSingleToFile.test
@@ -1,5 +1,5 @@
{
"mainFile": "source/test.kt",
- "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention",
+ "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention",
"isApplicable": "false"
}
\ No newline at end of file
diff --git a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/optimizeImports/optimizeImports.test b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/optimizeImports/optimizeImports.test
index bf16cae2672..170018cef9e 100644
--- a/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/optimizeImports/optimizeImports.test
+++ b/idea/testData/multiFileIntentions/moveDeclarationToSeparateFile/optimizeImports/optimizeImports.test
@@ -1,5 +1,5 @@
{
"mainFile": "test.kt",
- "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.MoveDeclarationToSeparateFileIntention",
+ "intentionClass": "org.jetbrains.kotlin.idea.refactoring.move.moveDeclarations.ExtractDeclarationFromCurrentFileIntention",
"isApplicable": "true"
}
\ No newline at end of file
diff --git a/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt b/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt
index 2b982b3658f..43d03eb62bc 100644
--- a/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt
+++ b/idea/testData/quickfix/abstract/makeInlineClassAbstract.kt
@@ -3,7 +3,7 @@
// ERROR: Primary constructor is required for inline class
// ACTION: Create test
// ACTION: Implement members
-// ACTION: Move 'A' to separate file
+// ACTION: Extract 'A' from current file
// ACTION: Rename file to A.kt
interface I {
fun foo(): String
diff --git a/idea/testData/quickfix/abstract/manyImpl.kt b/idea/testData/quickfix/abstract/manyImpl.kt
index 7ff6935649e..4df489fa7e9 100644
--- a/idea/testData/quickfix/abstract/manyImpl.kt
+++ b/idea/testData/quickfix/abstract/manyImpl.kt
@@ -3,7 +3,7 @@
// ACTION: Create test
// ACTION: Make internal
// ACTION: Make private
-// ACTION: Move 'X' to separate file
+// ACTION: Extract 'X' from current file
interface D {
fun foo()
diff --git a/idea/testData/quickfix/modifiers/noAbstractForObject.kt b/idea/testData/quickfix/modifiers/noAbstractForObject.kt
index 10537eeab9e..9887ea6cca1 100644
--- a/idea/testData/quickfix/modifiers/noAbstractForObject.kt
+++ b/idea/testData/quickfix/modifiers/noAbstractForObject.kt
@@ -1,11 +1,11 @@
// "Make 'Some' abstract" "false"
// ACTION: Create test
// ACTION: Implement members
-// ACTION: Move 'Some' to separate file
+// ACTION: Extract 'Some' from current file
// ACTION: Rename file to Some.kt
// ERROR: Object 'Some' is not abstract and does not implement abstract member public abstract fun foo(): Unit defined in T
interface T {
fun foo()
}
-object Some : T
\ No newline at end of file
+object Some : T
diff --git a/idea/testData/quickfix/override/dontOfferToImplementMembersForExpectedClass.kt b/idea/testData/quickfix/override/dontOfferToImplementMembersForExpectedClass.kt
index a32638870a2..07140b298f7 100644
--- a/idea/testData/quickfix/override/dontOfferToImplementMembersForExpectedClass.kt
+++ b/idea/testData/quickfix/override/dontOfferToImplementMembersForExpectedClass.kt
@@ -1,7 +1,7 @@
// "Implement members" "false"
// ACTION: Create test
// ACTION: Make internal
-// ACTION: Move 'A' to separate file
+// ACTION: Extract 'A' from current file
interface I {
fun foo()
diff --git a/idea/testData/quickfix/override/implemenAsConstructorParameterFunction.kt b/idea/testData/quickfix/override/implemenAsConstructorParameterFunction.kt
index a2cd0aa01de..302402e6310 100644
--- a/idea/testData/quickfix/override/implemenAsConstructorParameterFunction.kt
+++ b/idea/testData/quickfix/override/implemenAsConstructorParameterFunction.kt
@@ -4,7 +4,7 @@
// ACTION: Make 'A' abstract
// ACTION: Make internal
// ACTION: Make private
-// ACTION: Move 'A' to separate file
+// ACTION: Extract 'A' from current file
// ERROR: Class 'A' is not abstract and does not implement abstract member public abstract fun foo(): Int defined in I
interface I {
fun foo(): Int
diff --git a/idea/testData/quickfix/override/implemenAsConstructorParameterInObject.kt b/idea/testData/quickfix/override/implemenAsConstructorParameterInObject.kt
index b69abdc8c86..c46240ddda7 100644
--- a/idea/testData/quickfix/override/implemenAsConstructorParameterInObject.kt
+++ b/idea/testData/quickfix/override/implemenAsConstructorParameterInObject.kt
@@ -3,7 +3,7 @@
// ACTION: Implement members
// ACTION: Make internal
// ACTION: Make private
-// ACTION: Move 'A' to separate file
+// ACTION: Extract 'A' from current file
// ERROR: Object 'A' is not abstract and does not implement abstract member public abstract val foo: Int defined in I
interface I {
val foo: Int
diff --git a/idea/testData/quickfix/removeUnused/usedClassAsAlias.kt b/idea/testData/quickfix/removeUnused/usedClassAsAlias.kt
index 6f602a11bb3..05a65346f07 100644
--- a/idea/testData/quickfix/removeUnused/usedClassAsAlias.kt
+++ b/idea/testData/quickfix/removeUnused/usedClassAsAlias.kt
@@ -1,6 +1,6 @@
// "Safe delete 'Imported'" "false"
// ACTION: Create test
-// ACTION: Move 'ImportedClass' to separate file
+// ACTION: Extract 'ImportedClass' from current file
// ACTION: Rename file to ImportedClass.kt
import ImportedClass as ClassAlias
diff --git a/idea/testData/quickfix/removeUnused/usedObjectAsAlias.kt b/idea/testData/quickfix/removeUnused/usedObjectAsAlias.kt
index 14f43656234..8f50f5a116f 100644
--- a/idea/testData/quickfix/removeUnused/usedObjectAsAlias.kt
+++ b/idea/testData/quickfix/removeUnused/usedObjectAsAlias.kt
@@ -1,6 +1,6 @@
// "Safe delete 'Imported'" "false"
// ACTION: Create test
-// ACTION: Move 'Imported' to separate file
+// ACTION: Extract 'Imported' from current file
// ACTION: Rename file to Imported.kt
import Imported as Alias
diff --git a/idea/testData/quickfix/specifyOverrideExplicitly/notPossible.kt b/idea/testData/quickfix/specifyOverrideExplicitly/notPossible.kt
index adcd5e4bbef..b73b4c26835 100644
--- a/idea/testData/quickfix/specifyOverrideExplicitly/notPossible.kt
+++ b/idea/testData/quickfix/specifyOverrideExplicitly/notPossible.kt
@@ -2,7 +2,7 @@
// ACTION: Create test
// ACTION: Make primary constructor internal
// ACTION: Make primary constructor private
-// ACTION: Move 'C' to separate file
+// ACTION: Extract 'C' from current file
// ACTION: Rename file to C.kt
interface A {