J2K: more correct comment placement

This commit is contained in:
Valentin Kipyatkov
2015-09-28 23:05:11 +03:00
parent 1fb01dcfbb
commit 596635270e
5 changed files with 88 additions and 1 deletions
@@ -400,7 +400,12 @@ class Converter private constructor(
setter,
classKind == ClassKind.INTERFACE
)
return property.assignPrototype(field as PsiElement? ?: getMethod ?: setMethod)
val placementElement = field ?: getMethod ?: setMethod
val prototypes = listOf<PsiElement?>(field, getMethod, setMethod)
.filterNotNull()
.map { PrototypeInfo(it, if (it == placementElement) CommentsAndSpacesInheritance.LINE_BREAKS else CommentsAndSpacesInheritance.NO_SPACES) }
return property.assignPrototypes(*prototypes.toTypedArray())
}
}
@@ -0,0 +1,46 @@
class A {
// Comment for field1
private int field1 = 0;
private int field2; // comment for field2
// comment before field3
private int field3; // comment for field3
public A(int field2) {
this.field2 = field2;
}
// Comment for field1 getter
public int getField1() {
return field1;
}
/**
* Comment for field1 setter
*/
public void setField1(int field1) {
this.field1 = field1;
}
// comment for field2 getter
public int getField2() {
return field2;
}
// comment for field2 setter
public void setField2(int field2) {
this.field2 = field2;
}
public int getField3() { return field3; } // comment for field3 getter
public void setField3(int field3) { this.field3 = field3; } // comment for field3 setter
// comment for getProperty
public int getProperty() {
return 1;
} // end of getProperty
// comment for setProperty
public void setProperty(int value) {
} // end of setProperty
}
+24
View File
@@ -0,0 +1,24 @@
internal class A(// comment for field2 getter
// comment for field2 setter
var field2: Int // comment for field2
) {
// Comment for field1
// Comment for field1 getter
/**
* Comment for field1 setter
*/
var field1 = 0
// comment before field3
var field3: Int = 0 // comment for field3
// comment for field3 getter
// comment for field3 setter
// comment for getProperty
// comment for setProperty
var property: Int
get() = 1
set(value: Int) {
} // end of getProperty
// end of setProperty
}
@@ -1411,6 +1411,12 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo
doTest(fileName);
}
@TestMetadata("Comments.java")
public void testComments() throws Exception {
String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/Comments.java");
doTest(fileName);
}
@TestMetadata("DataClass.java")
public void testDataClass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/DataClass.java");
@@ -1411,6 +1411,12 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo
doTest(fileName);
}
@TestMetadata("Comments.java")
public void testComments() throws Exception {
String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/Comments.java");
doTest(fileName);
}
@TestMetadata("DataClass.java")
public void testDataClass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/detectProperties/DataClass.java");