mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-19061 Integrate the Rearranger-plugin into core-IDEA
More tests have been refactored and enabled
This commit is contained in:
@@ -281,9 +281,7 @@
|
||||
<Enum value="true" invert="false"/>
|
||||
</InnerClass>
|
||||
<Comment condition="2" nPrecedingRulesToMatch="1" nSubsequentRulesToMatch="1" allPrecedingRules="true" allSubsequentRules="true"
|
||||
fillString="" useProjectWidthForFill="true" fillWidth="0">\n//\ --------------------------\ INNER\ CLASSES\
|
||||
--------------------------\n
|
||||
</Comment>
|
||||
fillString="" useProjectWidthForFill="true" fillWidth="0">\n// -------------------------- INNER CLASSES --------------------------\n</Comment>
|
||||
<InnerClass priority="1">
|
||||
<ProtectionLevel public="false" private="false" protected="false" package="false" invert="false"/>
|
||||
<Static value="false" invert="false"/>
|
||||
|
||||
@@ -66,7 +66,11 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
|
||||
mySettings.showParameterTypes = true
|
||||
mySettings.showRules = true
|
||||
mySettings.rearrangeInnerClasses = true
|
||||
|
||||
|
||||
prepareBuilders(mySettings)
|
||||
}
|
||||
|
||||
private void prepareBuilders(RearrangerSettings mySettings) {
|
||||
settings = new SettingsConfigurationBuilder(settings: mySettings)
|
||||
classRule = new JavaClassRuleBuilder(settings: mySettings)
|
||||
interfaceRule = new JavaInterfaceRuleBuilder(settings: mySettings)
|
||||
@@ -813,7 +817,18 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
|
||||
lines: 1 )
|
||||
spacing ( 'remove blank lines': true )
|
||||
} } }
|
||||
|
||||
|
||||
private void setupSettings(@NotNull String relativePath) {
|
||||
// Using concat() because simple '+' here produces weird groovy.lang.MissingMethodException: No signature of method:
|
||||
// java.lang.String.positive() is applicable for argument types: () values: []
|
||||
def path = PlatformTestUtil.getCommunityPath().replace(File.separator, '/').concat("/plugins/rearranger")
|
||||
.concat(relativePath)
|
||||
mySettings = RearrangerSettings.getSettingsFromFile(new File(path));
|
||||
mySettings.askBeforeRearranging = false
|
||||
|
||||
prepareBuilders(mySettings)
|
||||
}
|
||||
|
||||
/**
|
||||
* Bug occurs when one or more blank lines precede a generated comment.
|
||||
* When comment is removed, blank lines now precede the item. Comment is inserted
|
||||
@@ -824,77 +839,36 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
|
||||
*/
|
||||
public void testGeneratedCommentSpacingBug() throws Exception {
|
||||
doTest('RearrangementTest32', 'RearrangementResult32') {
|
||||
// Using concat() because simple '+' here produces weird groovy.lang.MissingMethodException: No signature of method:
|
||||
// java.lang.String.positive() is applicable for argument types: () values: []
|
||||
def path = PlatformTestUtil.getCommunityPath().replace(File.separator, '/').concat("/plugins/rearranger")
|
||||
.concat(InteractiveTest.DEFAULT_CONFIGURATION)
|
||||
mySettings = RearrangerSettings.getSettingsFromFile(new File(path));
|
||||
mySettings.askBeforeRearranging = false
|
||||
mySettings.newLinesAtEOF.force = true
|
||||
mySettings.newLinesAtEOF.nBlankLines = 1
|
||||
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
|
||||
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
|
||||
} }
|
||||
|
||||
public void testGeneratedCommentSpacing() throws Exception {
|
||||
doTest('RearrangementTest32', 'RearrangementResult32') {
|
||||
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
|
||||
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
|
||||
} }
|
||||
|
||||
public void testInnerClassComments() throws Exception {
|
||||
doTest('RearrangementTest34', 'RearrangementResult34') {
|
||||
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
|
||||
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
|
||||
settings.configure( 'rearranger inner classes': true, 'class comment': '// ----- OUTER CLASS -----\n' )
|
||||
} }
|
||||
|
||||
public void testInnerClassCommentsNoRearrangement() throws Exception {
|
||||
doTest('RearrangementTest34', 'RearrangementResult34B') {
|
||||
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
|
||||
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
|
||||
settings.configure( 'rearranger inner classes': false, 'class comment': '// ----- OUTER CLASS -----\n' )
|
||||
} }
|
||||
|
||||
public void testFirstInsertionOfComment() throws Exception {
|
||||
doTest('RearrangementTest35', 'RearrangementResult35') {
|
||||
commentRule.comment('// ----- FIELDS -----\n')
|
||||
fieldRule.create { }
|
||||
} }
|
||||
|
||||
// public void testGeneratedCommentSpacing() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest32.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
|
||||
// rs.setAskBeforeRearranging(false);
|
||||
// rs.getNewlinesAtEOF().setForce(true);
|
||||
// rs.getNewlinesAtEOF().setnBlankLines(1);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult32.java");
|
||||
// }
|
||||
//
|
||||
// public void testInnerClassComments() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest34.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
|
||||
// rs.setAskBeforeRearranging(false);
|
||||
// rs.setRearrangeInnerClasses(true);
|
||||
// rs.getNewlinesAtEOF().setForce(true);
|
||||
// rs.getNewlinesAtEOF().setnBlankLines(1);
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("// ----- OUTER CLASS -----\n");
|
||||
// rs.getClassOrderAttributeList().add(0, cr);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult34.java");
|
||||
// }
|
||||
//
|
||||
// public void testInnerClassCommentsNoRearrangement() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest34.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
|
||||
// rs.setAskBeforeRearranging(false);
|
||||
// rs.setRearrangeInnerClasses(false);
|
||||
// rs.getNewlinesAtEOF().setForce(true);
|
||||
// rs.getNewlinesAtEOF().setnBlankLines(1);
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("// ----- OUTER CLASS -----\n");
|
||||
// rs.getClassOrderAttributeList().add(0, cr);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult34B.java");
|
||||
// }
|
||||
//
|
||||
// public void testFirstInsertionOfComment() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest35.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("// ----- FIELDS -----\n");
|
||||
// FieldAttributes fa = new FieldAttributes();
|
||||
// rs.addItem(cr, 0);
|
||||
// rs.addItem(fa, 1);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult35.java");
|
||||
// }
|
||||
//
|
||||
// public void testExcludeFromExtraction() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest36.java");
|
||||
// final PsiFile file = getFile();
|
||||
|
||||
@@ -54,7 +54,9 @@ public enum RearrangerTestDsl {
|
||||
BLANK_LINES("lines"),
|
||||
REMOVE_BLANK_LINES("remove blank lines"),
|
||||
BELOW_FIRST_CALLER("below first caller"),
|
||||
NON_PRIVATE_TREATMENT("non-private treatment");
|
||||
NON_PRIVATE_TREATMENT("non-private treatment"),
|
||||
REARRANGE_INNER_CLASSES("rearranger inner classes"),
|
||||
CLASS_COMMENT("class comment");
|
||||
|
||||
@NotNull private final String myValue;
|
||||
|
||||
|
||||
+15
-6
@@ -45,13 +45,14 @@ class SettingsConfigurationBuilder extends BuilderSupport {
|
||||
switch (name) {
|
||||
case RearrangerTestDsl.EXTRACTED_METHODS.value:
|
||||
settings.extractedMethodsSettings.moveExtractedMethods = true
|
||||
setIf(RearrangerTestDsl.DEPTH_FIRST_ORDER, attributes, 'depthFirstOrdering', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.ORDER, attributes, 'ordering', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.COMMENT_TYPE, attributes, 'commentType', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.BELOW_FIRST_CALLER, attributes, 'belowFirstCaller', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.DEPTH_FIRST_ORDER, attributes, 'depthFirstOrdering', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.ORDER, attributes, 'ordering', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.COMMENT_TYPE, attributes, 'commentType', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.BELOW_FIRST_CALLER, attributes, 'belowFirstCaller', settings.extractedMethodsSettings)
|
||||
setIf(RearrangerTestDsl.NON_PRIVATE_TREATMENT, attributes, 'nonPrivateTreatment', settings.extractedMethodsSettings)
|
||||
|
||||
commentHandler(RearrangerTestDsl.PRECEDING_COMMENT, 'precedingComment')
|
||||
commentHandler(RearrangerTestDsl.TRAILING_COMMENT, 'trailingComment')
|
||||
commentHandler(RearrangerTestDsl.TRAILING_COMMENT, 'trailingComment')
|
||||
break
|
||||
case RearrangerTestDsl.KEEP_TOGETHER.value:
|
||||
def m = [
|
||||
@@ -64,8 +65,16 @@ class SettingsConfigurationBuilder extends BuilderSupport {
|
||||
}
|
||||
break
|
||||
case RearrangerTestDsl.OVERLOADED_METHODS.value:
|
||||
setIf(RearrangerTestDsl.ORDER, attributes, 'overloadedOrder', settings)
|
||||
setIf(RearrangerTestDsl.ORDER, attributes, 'overloadedOrder', settings)
|
||||
setIf(RearrangerTestDsl.KEEP_TOGETHER, attributes, 'keepOverloadedMethodsTogether', settings)
|
||||
break
|
||||
default:
|
||||
setIf(RearrangerTestDsl.REARRANGE_INNER_CLASSES, attributes, 'rearrangeInnerClasses', settings)
|
||||
if (attributes[RearrangerTestDsl.CLASS_COMMENT.value]) {
|
||||
def comment = new CommentRule()
|
||||
comment.commentText = attributes[RearrangerTestDsl.CLASS_COMMENT.value]
|
||||
settings.classOrderAttributeList.add(0, comment)
|
||||
}
|
||||
}
|
||||
settings
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user