Merge branch 'master' of git.labs.intellij.net:idea/community

This commit is contained in:
Roman Shevchenko
2015-05-22 23:08:56 +02:00
102 changed files with 1548 additions and 519 deletions
@@ -17,8 +17,8 @@ package com.intellij.psi.codeStyle.arrangement
import com.intellij.psi.codeStyle.arrangement.match.StdArrangementMatchRule
import static com.intellij.psi.codeStyle.arrangement.std.StdArrangementTokens.EntryType.*;
import static com.intellij.psi.codeStyle.arrangement.std.StdArrangementTokens.Modifier.*;
import static com.intellij.psi.codeStyle.arrangement.std.StdArrangementTokens.EntryType.*
import static com.intellij.psi.codeStyle.arrangement.std.StdArrangementTokens.Modifier.*
class JavaRearrangerFieldReferenceTest extends AbstractJavaRearrangerTest {
@@ -448,4 +448,61 @@ public class TmpTest {
]
);
}
void "test only dependencies withing same initialization scope"() {
doTest(
initial: '''
public class TestArrangementBuilder {
private String theString = "";
private static final TestArrangement DEFAULT = new TestArrangementBuilder().build();
public TestArrangement build() {
return new TestArrangement(theString);
}
public class TestArrangement {
private final String theString;
public TestArrangement() {
this("");
}
public TestArrangement(@NotNull String aString) {
theString = aString;
}
}
}
''',
expected: '''
public class TestArrangementBuilder {
private static final TestArrangement DEFAULT = new TestArrangementBuilder().build();
private String theString = "";
public TestArrangement build() {
return new TestArrangement(theString);
}
public class TestArrangement {
private final String theString;
public TestArrangement() {
this("");
}
public TestArrangement(@NotNull String aString) {
theString = aString;
}
}
}
''',
rules: [
rule(PUBLIC, STATIC, FINAL),
rule(PRIVATE, STATIC, FINAL),
rule(PRIVATE, FINAL),
rule(PRIVATE)
]
)
}
}
@@ -35,6 +35,7 @@ import com.intellij.psi.codeStyle.*;
import com.intellij.psi.codeStyle.autodetect.DetectableIndentOptionsProvider;
import com.intellij.testFramework.LightIdeaTestCase;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.text.LineReader;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -83,7 +84,7 @@ public abstract class AbstractJavaFormatterTest extends LightIdeaTestCase {
return result.toString();
}
protected enum Action {REFORMAT, INDENT}
protected enum Action {REFORMAT, INDENT, REFORMAT_WITH_CONTEXT}
public static JavaCodeStyleSettings getJavaSettings() {
return getSettings().getRootSettings().getCustomSettings(JavaCodeStyleSettings.class);
@@ -107,6 +108,13 @@ public abstract class AbstractJavaFormatterTest extends LightIdeaTestCase {
CodeStyleManager.getInstance(getProject()).adjustLineIndent(psiFile, startOffset);
}
});
ACTIONS.put(Action.REFORMAT_WITH_CONTEXT, new TestFormatAction() {
@Override
public void run(PsiFile psiFile, int startOffset, int endOffset) {
List<TextRange> ranges = ContainerUtil.newArrayList(new TextRange(startOffset, endOffset));
CodeStyleManager.getInstance(getProject()).reformatTextWithContext(psiFile, ranges);
}
});
}
private static final String BASE_PATH = JavaTestUtil.getJavaTestDataPath() + "/psi/formatter/java";
@@ -16,6 +16,7 @@
package com.intellij.psi.formatter.java;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.util.IncorrectOperationException;
@@ -593,4 +594,67 @@ public class JavaFormatterAlignmentTest extends AbstractJavaFormatterTest {
" String superString = \"\";\n" +
"}");
}
public void test_Shift_All_AlignedParameters() {
myLineRange = new TextRange(2, 2);
getSettings().ALIGN_MULTILINE_PARAMETERS_IN_CALLS = true;
doTextTest(
Action.REFORMAT_WITH_CONTEXT,
"public class Test {\n" +
" \n" +
" public void fooooo(String foo,\n" +
" String booo,\n" +
" String kakadoo) {\n" +
"\n" +
" }\n" +
"\n" +
"}",
"public class Test {\n" +
"\n" +
" public void fooooo(String foo,\n" +
" String booo,\n" +
" String kakadoo) {\n" +
"\n" +
" }\n" +
"\n" +
"}"
);
}
public void test_Align_UnselectedField_IfNeeded() {
myLineRange = new TextRange(2, 2);
getSettings().ALIGN_GROUP_FIELD_DECLARATIONS = true;
doTextTest(
Action.REFORMAT_WITH_CONTEXT,
"public class Test {\n" +
" public int i = 1;\n" +
" public String iiiiiiiiii = 2;\n" +
"}",
"public class Test {\n" +
" public int i = 1;\n" +
" public String iiiiiiiiii = 2;\n" +
"}"
);
}
public void test_Align_UnselectedVariable_IfNeeded() {
myLineRange = new TextRange(3, 3);
getSettings().ALIGN_CONSECUTIVE_VARIABLE_DECLARATIONS = true;
doTextTest(
Action.REFORMAT_WITH_CONTEXT,
"public class Test {\n" +
" public void test() {\n" +
" int s = 2;\n" +
" String sssss = 3;\n" +
" }\n" +
"}",
"public class Test {\n" +
" public void test() {\n" +
" int s = 2;\n" +
" String sssss = 3;\n" +
" }\n" +
"}"
);
}
}