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:
@@ -653,86 +653,60 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
|
||||
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_ALPHABETICAL, alphabetize: false )
|
||||
} } }
|
||||
|
||||
// public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rs.setKeepGettersSettersTogether(false);
|
||||
// InterfaceAttributes ia = new InterfaceAttributes();
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Header ****/");
|
||||
// ia.setPrecedingComment(cr);
|
||||
// cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
|
||||
// ia.setTrailingComment(cr);
|
||||
// ia.setNoExtractedMethods(true);
|
||||
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
|
||||
// ia.setAlphabetizeInterfaces(false);
|
||||
// rs.addItem(ia, 0);
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNNANXME.java");
|
||||
// }
|
||||
//
|
||||
// public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodInterfaceOrder() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rs.setKeepGettersSettersTogether(false);
|
||||
// InterfaceAttributes ia = new InterfaceAttributes();
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Header ****/");
|
||||
// ia.setPrecedingComment(cr);
|
||||
// cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
|
||||
// ia.setTrailingComment(cr);
|
||||
// ia.setNoExtractedMethods(true);
|
||||
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_INTERFACE_ORDER);
|
||||
// ia.setAlphabetizeInterfaces(false);
|
||||
// rs.addItem(ia, 0);
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNNANXMI.java");
|
||||
// }
|
||||
//
|
||||
// public void testInterfaceByNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rs.setKeepGettersSettersTogether(false);
|
||||
// InterfaceAttributes ia = new InterfaceAttributes();
|
||||
// ia.getNameAttr().setMatch(true);
|
||||
// ia.getNameAttr().setExpression("IFace1");
|
||||
// ia.setNoExtractedMethods(true);
|
||||
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
|
||||
// ia.setAlphabetizeInterfaces(false);
|
||||
// rs.addItem(ia, 0);
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23BNNANXME.java");
|
||||
// }
|
||||
//
|
||||
// public void testInterfaceIsAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
|
||||
// final PsiFile file = getFile();
|
||||
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
// final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
// rs.setKeepGettersSettersTogether(false);
|
||||
// InterfaceAttributes ia = new InterfaceAttributes();
|
||||
// CommentRule cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Header ****/");
|
||||
// ia.setPrecedingComment(cr);
|
||||
// cr = new CommentRule();
|
||||
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
|
||||
// ia.setTrailingComment(cr);
|
||||
// ia.setNoExtractedMethods(true);
|
||||
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
|
||||
// ia.setAlphabetizeInterfaces(true);
|
||||
// rs.addItem(ia, 0);
|
||||
// rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNIANXME.java");
|
||||
// }
|
||||
//
|
||||
public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
doTest('RearrangementTest23', 'RearrangementResult23NNNANXME') {
|
||||
mySettings.keepGettersSettersTogether = false
|
||||
interfaceRule.create {
|
||||
precedingComment( '/**** Interface %IF% Header ****/' )
|
||||
trailingComment( '/**** Interface %IF% Trailer ***/' )
|
||||
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED, alphabetize: false )
|
||||
} } }
|
||||
|
||||
public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodInterfaceOrder() throws Exception {
|
||||
doTest('RearrangementTest23', 'RearrangementResult23NNNANXMI') {
|
||||
mySettings.keepGettersSettersTogether = false
|
||||
interfaceRule.create {
|
||||
precedingComment( '/**** Interface %IF% Header ****/' )
|
||||
trailingComment( '/**** Interface %IF% Trailer ***/' )
|
||||
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_INTERFACE_ORDER, alphabetize: false )
|
||||
} } }
|
||||
|
||||
public void testInterfaceByNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
doTest('RearrangementTest23', 'RearrangementResult23BNNANXME') {
|
||||
mySettings.keepGettersSettersTogether = false
|
||||
interfaceRule.setup( "don't group extracted methods": true, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED,
|
||||
alphabetize: false, name : 'IFace1'
|
||||
) } }
|
||||
|
||||
public void testInterfaceIsAlphabeticalNoExcludeMethodEncountered() throws Exception {
|
||||
doTest('RearrangementTest23', 'RearrangementResult23NNIANXME') {
|
||||
interfaceRule.create {
|
||||
precedingComment( '/**** Interface %IF% Header ****/' )
|
||||
trailingComment( '/**** Interface %IF% Trailer ***/' )
|
||||
setup( "don't group extracted methods": true, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED, alphabetize: true )
|
||||
}
|
||||
}
|
||||
|
||||
//configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
|
||||
//final PsiFile file = getFile();
|
||||
//final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
|
||||
//final RearrangerActionHandler rah = new RearrangerActionHandler();
|
||||
//rs.setKeepGettersSettersTogether(false);
|
||||
//InterfaceAttributes ia = new InterfaceAttributes();
|
||||
//CommentRule cr = new CommentRule();
|
||||
//cr.setCommentText("/**** Interface %IF% Header ****/");
|
||||
//ia.setPrecedingComment(cr);
|
||||
//cr = new CommentRule();
|
||||
//cr.setCommentText("/**** Interface %IF% Trailer ***/");
|
||||
//ia.setTrailingComment(cr);
|
||||
//ia.setNoExtractedMethods(true);
|
||||
//ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
|
||||
//ia.setAlphabetizeInterfaces(true);
|
||||
//rs.addItem(ia, 0);
|
||||
//rah.rearrangeDocument(getProject(), file, rs, doc);
|
||||
//super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNIANXME.java");
|
||||
}
|
||||
|
||||
// public void testNPE24() throws Exception {
|
||||
// // submitted by Nathan Brown. Caused NPE in Rearranger plugin version 1.7.
|
||||
// int itemIndex = 0;
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.junit.Assert
|
||||
public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
|
||||
|
||||
@NotNull def RearrangerSettings settings
|
||||
private boolean myRuleRegistered
|
||||
|
||||
/**
|
||||
* Holds rule customization handlers in the form {@code 'property id -> closure'} where <code>'property id'</code>
|
||||
@@ -30,10 +31,19 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
|
||||
{ key -> Assert.fail("No handler for the rule attribute '${key}'") }
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object getCurrent() {
|
||||
if (!super.current) {
|
||||
current = createRule()
|
||||
}
|
||||
super.current
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void nodeCompleted(Object parent, Object node) {
|
||||
if (!parent && node) {
|
||||
if (!myRuleRegistered) {
|
||||
registerRule(settings, node as T)
|
||||
myRuleRegistered = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,12 +53,9 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
|
||||
|
||||
@Override
|
||||
protected Object createNode(Object name) {
|
||||
if (name == 'create') {
|
||||
return createRule()
|
||||
}
|
||||
createNode(name, [:], [])
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Object createNode(Object name, Object value) {
|
||||
createNode(name, [:], value)
|
||||
@@ -61,6 +68,9 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
|
||||
|
||||
@Override
|
||||
protected Object createNode(Object name, Map attributes, Object value) {
|
||||
if (!myHandlers.containsKey(name)) {
|
||||
return current
|
||||
}
|
||||
if (value) {
|
||||
for (i in [value].flatten()) {
|
||||
myHandlers[name](i, attributes, current)
|
||||
@@ -70,7 +80,7 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
|
||||
myHandlers[name](null, attributes, current)
|
||||
}
|
||||
|
||||
getCurrent()
|
||||
current
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+6
@@ -19,11 +19,17 @@ class JavaInterfaceRuleBuilder extends AbstractJavaRuleBuilder<InterfaceAttribut
|
||||
rule."$propertyName" = comment
|
||||
}
|
||||
|
||||
def nameHandler = createStringAttributeHandler('nameAttr')
|
||||
|
||||
registerHandler(RearrangerTestDsl.PRECEDING_COMMENT, { value, attributes, rule -> commentHandler(rule, value, 'precedingComment') })
|
||||
registerHandler(RearrangerTestDsl.TRAILING_COMMENT, { value, attributes, rule -> commentHandler(rule, value, 'trailingComment') })
|
||||
registerHandler(RearrangerTestDsl.SETUP, { value, attributes, rule ->
|
||||
RearrangerTestUtil.setIf(RearrangerTestDsl.GROUP_EXTRACTED_METHODS, attributes, 'noExtractedMethods', rule)
|
||||
RearrangerTestUtil.setIf(RearrangerTestDsl.ORDER, attributes, 'methodOrder', rule)
|
||||
RearrangerTestUtil.setIf(RearrangerTestDsl.ALPHABETIZE, attributes, 'alphabetizeInterfaces', rule)
|
||||
if (attributes[RearrangerTestDsl.NAME.value]) {
|
||||
nameHandler(attributes[RearrangerTestDsl.NAME.value], attributes, rule)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,7 @@
|
||||
public class RearrangementTest23
|
||||
implements IFace2, IFace1
|
||||
{
|
||||
|
||||
public int getY() {
|
||||
return 6;
|
||||
}
|
||||
@@ -8,7 +9,6 @@ public class RearrangementTest23
|
||||
public int getX() {
|
||||
return getA() ? 5 : 3;
|
||||
}
|
||||
|
||||
int method1() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,7 +1,8 @@
|
||||
public class RearrangementTest23
|
||||
implements IFace2, IFace1
|
||||
{
|
||||
/** * Interface IFace1 Header *** */
|
||||
/**** Interface IFace1 Header ****/
|
||||
|
||||
public int getY() {
|
||||
return 6;
|
||||
}
|
||||
@@ -10,7 +11,8 @@ public class RearrangementTest23
|
||||
return getA() ? 5 : 3;
|
||||
}
|
||||
/**** Interface IFace1 Trailer ***/
|
||||
/** * Interface IFace2 Header *** */
|
||||
/**** Interface IFace2 Header ****/
|
||||
|
||||
public boolean getB() {
|
||||
return false;
|
||||
}
|
||||
@@ -18,8 +20,7 @@ public class RearrangementTest23
|
||||
public boolean getA() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/** * Interface IFace2 Trailer ** */
|
||||
/**** Interface IFace2 Trailer ***/
|
||||
int method1() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,7 +1,8 @@
|
||||
public class RearrangementTest23
|
||||
implements IFace2, IFace1
|
||||
{
|
||||
/** * Interface IFace2 Header *** */
|
||||
/**** Interface IFace2 Header ****/
|
||||
|
||||
public boolean getB() {
|
||||
return false;
|
||||
}
|
||||
@@ -10,7 +11,8 @@ public class RearrangementTest23
|
||||
return true;
|
||||
}
|
||||
/**** Interface IFace2 Trailer ***/
|
||||
/** * Interface IFace1 Header *** */
|
||||
/**** Interface IFace1 Header ****/
|
||||
|
||||
public int getY() {
|
||||
return 6;
|
||||
}
|
||||
@@ -18,8 +20,7 @@ public class RearrangementTest23
|
||||
public int getX() {
|
||||
return getA() ? 5 : 3;
|
||||
}
|
||||
|
||||
/** * Interface IFace1 Trailer ** */
|
||||
/**** Interface IFace1 Trailer ***/
|
||||
int method1() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,7 +1,8 @@
|
||||
public class RearrangementTest23
|
||||
implements IFace2, IFace1
|
||||
{
|
||||
/** * Interface IFace2 Header *** */
|
||||
/**** Interface IFace2 Header ****/
|
||||
|
||||
public boolean getA() {
|
||||
return true;
|
||||
}
|
||||
@@ -10,7 +11,8 @@ public class RearrangementTest23
|
||||
return false;
|
||||
}
|
||||
/**** Interface IFace2 Trailer ***/
|
||||
/** * Interface IFace1 Header *** */
|
||||
/**** Interface IFace1 Header ****/
|
||||
|
||||
public int getY() {
|
||||
return 6;
|
||||
}
|
||||
@@ -18,8 +20,7 @@ public class RearrangementTest23
|
||||
public int getX() {
|
||||
return getA() ? 5 : 3;
|
||||
}
|
||||
|
||||
/** * Interface IFace1 Trailer ** */
|
||||
/**** Interface IFace1 Trailer ***/
|
||||
int method1() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user