diff --git a/plugins/rearranger/src/com/wrq/rearranger/defaultConfiguration.xml b/plugins/rearranger/src/com/wrq/rearranger/defaultConfiguration.xml
index d3a0cf0463fb..f153990a0491 100644
--- a/plugins/rearranger/src/com/wrq/rearranger/defaultConfiguration.xml
+++ b/plugins/rearranger/src/com/wrq/rearranger/defaultConfiguration.xml
@@ -281,9 +281,7 @@
\n//\ --------------------------\ INNER\ CLASSES\
- --------------------------\n
-
+ fillString="" useProjectWidthForFill="true" fillWidth="0">\n// -------------------------- INNER CLASSES --------------------------\n
diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy b/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy
index 0b1e748e5c6a..7487b73ca465 100644
--- a/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy
+++ b/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy
@@ -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();
diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java b/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java
index e10576c09473..07bdde6296db 100644
--- a/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java
+++ b/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java
@@ -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;
diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/util/SettingsConfigurationBuilder.groovy b/plugins/rearranger/test/src/com/wrq/rearranger/util/SettingsConfigurationBuilder.groovy
index 23fdef4148e2..fe06eb05731d 100644
--- a/plugins/rearranger/test/src/com/wrq/rearranger/util/SettingsConfigurationBuilder.groovy
+++ b/plugins/rearranger/test/src/com/wrq/rearranger/util/SettingsConfigurationBuilder.groovy
@@ -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
}