Conversion on copy paste:
Copy elements that are partially selected as text
This commit is contained in:
@@ -101,12 +101,17 @@ public class JavaCopyPastePostProcessor() : CopyPastePostProcessor<TextBlockTran
|
|||||||
converter: Converter): String {
|
converter: Converter): String {
|
||||||
val result = StringBuilder()
|
val result = StringBuilder()
|
||||||
var currentRange = range
|
var currentRange = range
|
||||||
|
val fileText = file.getText()!!
|
||||||
while (!currentRange.isEmpty()) {
|
while (!currentRange.isEmpty()) {
|
||||||
val leafElement = findFirstLeafElementWhollyInRange(file, currentRange)
|
val leafElement = findFirstLeafElementWhollyInRange(file, currentRange)
|
||||||
if (leafElement == null) {
|
if (leafElement == null) {
|
||||||
break;
|
val unconvertedSuffix = fileText.substring(currentRange.getStartOffset(), currentRange.getEndOffset())
|
||||||
|
result.append(unconvertedSuffix)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
val elementToConvert = findTopMostParentWhollyInRange(currentRange, leafElement)
|
val elementToConvert = findTopMostParentWhollyInRange(currentRange, leafElement)
|
||||||
|
val unconvertedPrefix = fileText.substring(currentRange.getStartOffset(), elementToConvert.getTextRange()!!.getStartOffset())
|
||||||
|
result.append(unconvertedPrefix)
|
||||||
val converted = converter.elementToKotlin(elementToConvert)
|
val converted = converter.elementToKotlin(elementToConvert)
|
||||||
if (converted.isNotEmpty()) {
|
if (converted.isNotEmpty()) {
|
||||||
result.append(converted)
|
result.append(converted)
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
class A {
|
||||||
|
|
||||||
|
|
||||||
|
fun foo() {}
|
||||||
|
|
||||||
|
fun bar() {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fun f() {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
class A {
|
||||||
|
|
||||||
|
<selection>
|
||||||
|
void foo() {}
|
||||||
|
|
||||||
|
void bar() {}
|
||||||
|
|
||||||
|
</selection>
|
||||||
|
void foobar() {}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
class A {
|
||||||
|
|
||||||
|
<caret>
|
||||||
|
|
||||||
|
fun f() {}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
class
|
class Some
|
||||||
+5
@@ -46,6 +46,11 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
|
|||||||
doTest("idea/testData/copyPaste/conversion/Constructor.java");
|
doTest("idea/testData/copyPaste/conversion/Constructor.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("HalfTheWhiteSpace.java")
|
||||||
|
public void testHalfTheWhiteSpace() throws Exception {
|
||||||
|
doTest("idea/testData/copyPaste/conversion/HalfTheWhiteSpace.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("Imports1.java")
|
@TestMetadata("Imports1.java")
|
||||||
public void testImports1() throws Exception {
|
public void testImports1() throws Exception {
|
||||||
doTest("idea/testData/copyPaste/conversion/Imports1.java");
|
doTest("idea/testData/copyPaste/conversion/Imports1.java");
|
||||||
|
|||||||
Reference in New Issue
Block a user