Conversion on copy paste:

Copy element as text in case it can't be converted
This commit is contained in:
Pavel V. Talanov
2013-12-20 17:27:16 +04:00
parent ab19669c43
commit 3a4b7e07f8
11 changed files with 44 additions and 1 deletions
@@ -107,7 +107,13 @@ public class JavaCopyPastePostProcessor() : CopyPastePostProcessor<TextBlockTran
break;
}
val elementToConvert = findTopMostParentWhollyInRange(currentRange, leafElement)
result.append(converter.elementToKotlin(elementToConvert))
val converted = converter.elementToKotlin(elementToConvert)
if (converted.isNotEmpty()) {
result.append(converted)
}
else {
result.append(elementToConvert.getText())
}
val endOfConverted = elementToConvert.getTextRange()!!.getEndOffset()
currentRange = TextRange(endOfConverted, currentRange.getEndOffset())
}
@@ -0,0 +1 @@
b - c + d
@@ -0,0 +1,3 @@
public static void main(String[]args){
a + <selection>b - c + d</selection> - e
}
@@ -0,0 +1 @@
<caret>
@@ -0,0 +1,4 @@
fun main(args: Array<String>) {
{
val a = Object()
}
@@ -0,0 +1,5 @@
class A {
public static void main(String[] args) <selection>{
Object a = new Object();</selection>
}
}
@@ -0,0 +1,3 @@
fun main(args: Array<String>) {
<caret>
}
@@ -0,0 +1,3 @@
<selection>class Some</selection>InterestingClass {
}
@@ -0,0 +1 @@
<caret>
@@ -36,6 +36,11 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/copyPaste/conversion"), Pattern.compile("^(.+)\\.java$"), true);
}
@TestMetadata("Arithmetic.java")
public void testArithmetic() throws Exception {
doTest("idea/testData/copyPaste/conversion/Arithmetic.java");
}
@TestMetadata("Constructor.java")
public void testConstructor() throws Exception {
doTest("idea/testData/copyPaste/conversion/Constructor.java");
@@ -66,6 +71,11 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
doTest("idea/testData/copyPaste/conversion/OnlyClosingBrace.java");
}
@TestMetadata("OnlyOneBraceFromBlock.java")
public void testOnlyOneBraceFromBlock() throws Exception {
doTest("idea/testData/copyPaste/conversion/OnlyOneBraceFromBlock.java");
}
@TestMetadata("OnlyQualifier.java")
public void testOnlyQualifier() throws Exception {
doTest("idea/testData/copyPaste/conversion/OnlyQualifier.java");
@@ -81,4 +91,9 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
doTest("idea/testData/copyPaste/conversion/SeveralMethodsSample.java");
}
@TestMetadata("SingleWordFromIdentifier.java")
public void testSingleWordFromIdentifier() throws Exception {
doTest("idea/testData/copyPaste/conversion/SingleWordFromIdentifier.java");
}
}