mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
IDEA-19061 Integrate the Rearranger-plugin into core-IDE
Added ability to remove match rules
This commit is contained in:
+61
-7
@@ -51,7 +51,7 @@ four = '4'()
|
||||
'1' {
|
||||
'4'()
|
||||
}
|
||||
def rowMappings = doReplace(initial, one, four, replacement)
|
||||
def rowMappings = doReplace(one, four, replacement)
|
||||
|
||||
// Check
|
||||
def expected = new TreeNodeBuilder().
|
||||
@@ -88,7 +88,7 @@ to = '5'()
|
||||
'1' {
|
||||
'5'()
|
||||
}
|
||||
def rowMappings = doReplace(initial, from, to, replacement)
|
||||
def rowMappings = doReplace(from, to, replacement)
|
||||
|
||||
// Check.
|
||||
def expected = new TreeNodeBuilder().
|
||||
@@ -123,7 +123,7 @@ node = '4'()
|
||||
'1' {
|
||||
'4'()
|
||||
}
|
||||
def rowMappings = doReplace(initial, node, node, replacement)
|
||||
def rowMappings = doReplace(node, node, replacement)
|
||||
|
||||
// Check.
|
||||
def expected = new TreeNodeBuilder().
|
||||
@@ -158,7 +158,7 @@ to = '3'()}
|
||||
'4' {
|
||||
'3'()
|
||||
}
|
||||
def rowMappings = doReplace(initial, from, to, replacement)
|
||||
def rowMappings = doReplace(from, to, replacement)
|
||||
|
||||
// Check.
|
||||
def expected = new TreeNodeBuilder().
|
||||
@@ -194,7 +194,7 @@ to = '2'()}
|
||||
'3' {
|
||||
'2'()
|
||||
}
|
||||
def rowMappings = doReplace(initial, from, to, replacement)
|
||||
def rowMappings = doReplace(from, to, replacement)
|
||||
|
||||
// Check.
|
||||
def expected = new TreeNodeBuilder().
|
||||
@@ -361,15 +361,69 @@ to = '2'()}
|
||||
doInsert(initial, 3, toAdd)
|
||||
assertNodesEqual(expected, initial)
|
||||
}
|
||||
|
||||
@Test
|
||||
void removeFirst() {
|
||||
def from;
|
||||
def to;
|
||||
def initial = new TreeNodeBuilder().
|
||||
'0' {
|
||||
from = '1' {
|
||||
to = '2'()
|
||||
'3'()}
|
||||
'4'()
|
||||
}
|
||||
|
||||
def expected = new TreeNodeBuilder().
|
||||
'0' {
|
||||
'1' {
|
||||
'3'()}
|
||||
'4'()
|
||||
}
|
||||
|
||||
def rowMappings = doRemove(from, to)
|
||||
assertNodesEqual(expected, initial)
|
||||
checkRowMappings([ 3 : 2, 4 : 3 ], rowMappings)
|
||||
}
|
||||
|
||||
@Test
|
||||
void removeWithMerge() {
|
||||
def from;
|
||||
def to;
|
||||
def initial = new TreeNodeBuilder().
|
||||
'0' {
|
||||
'1' {
|
||||
'2'()}
|
||||
from = '3'() {
|
||||
to = '4'()}
|
||||
'1' {
|
||||
'5'()}
|
||||
}
|
||||
|
||||
def expected = new TreeNodeBuilder().
|
||||
'0' {
|
||||
'1' {
|
||||
'2'()
|
||||
'5'()}
|
||||
}
|
||||
|
||||
def rowMappings = doRemove(from, to)
|
||||
assertNodesEqual(expected, initial)
|
||||
checkRowMappings([ 6 : 3 ], rowMappings)
|
||||
}
|
||||
|
||||
private static def doReplace(initial, from, to, replacement) {
|
||||
ArrangementConfigUtil.replace(from, to, replacement, new DefaultTreeModel(initial), true)
|
||||
private static def doReplace(from, to, replacement) {
|
||||
ArrangementConfigUtil.replace(from, to, replacement, new DefaultTreeModel(ArrangementConfigUtil.getRoot(from)), true)
|
||||
}
|
||||
|
||||
private static def doInsert(parent, i, child) {
|
||||
ArrangementConfigUtil.insert(parent, i, child, new DefaultTreeModel(ArrangementConfigUtil.getRoot(parent)))
|
||||
}
|
||||
|
||||
private static def doRemove(from, to) {
|
||||
ArrangementConfigUtil.remove(from, to, new DefaultTreeModel(ArrangementConfigUtil.getRoot(from)), true)
|
||||
}
|
||||
|
||||
private static void assertNodesEqual(@NotNull ArrangementTreeNode expected, @NotNull ArrangementTreeNode actual) {
|
||||
assertEquals(expected.userObject, actual.userObject)
|
||||
assertEquals(expected.childCount, actual.childCount)
|
||||
|
||||
+11
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.application.options.codeStyle.arrangement;
|
||||
|
||||
import com.intellij.psi.codeStyle.arrangement.model.ArrangementMatchCondition;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.junit.Test;
|
||||
|
||||
import static com.intellij.psi.codeStyle.arrangement.ArrangementUtil.and;
|
||||
@@ -90,7 +91,7 @@ public class ArrangementRuleEditingModelImplTest extends AbstractArrangementRule
|
||||
@Test
|
||||
public void removeAndKeepAllLevels() {
|
||||
configure(and(atom(FIELD), atom(PUBLIC), atom(STATIC)));
|
||||
ArrangementRuleEditingModel model = myRowMappings.get(2);
|
||||
ArrangementRuleEditingModelImpl model = myRowMappings.get(2);
|
||||
assertNotNull(model);
|
||||
assertEquals(1, myRowMappings.size());
|
||||
|
||||
@@ -107,6 +108,8 @@ public class ArrangementRuleEditingModelImplTest extends AbstractArrangementRule
|
||||
ArrangementTreeNode modifiersNode = fieldNode.getFirstChild();
|
||||
assertNotNull(modifiersNode);
|
||||
assertEquals(atom(STATIC), modifiersNode.getBackingCondition());
|
||||
|
||||
checkModelTreeNodesConsistency(model);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -194,4 +197,11 @@ public class ArrangementRuleEditingModelImplTest extends AbstractArrangementRule
|
||||
assertNotNull(atomFieldNode);
|
||||
assertEquals(atom(FIELD), atomFieldNode.getBackingCondition());
|
||||
}
|
||||
|
||||
private void checkModelTreeNodesConsistency(@NotNull ArrangementRuleEditingModelImpl model) {
|
||||
model.refreshTreeNodes();
|
||||
ArrangementTreeNode root = ArrangementConfigUtil.getRoot(model.getBottomMost());
|
||||
assertSame(myRoot, root);
|
||||
assertSame(root, ArrangementConfigUtil.getRoot(model.getTopMost()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user