when importing a class via completion, don't indent the next line if it starts with a cast

This commit is contained in:
peter
2011-11-21 18:53:09 +01:00
parent f61f5b0039
commit 5a79031d3f
4 changed files with 25 additions and 11 deletions
@@ -23,7 +23,6 @@ import com.intellij.codeInsight.completion.util.ParenthesesInsertHandler;
import com.intellij.codeInsight.daemon.impl.quickfix.StaticImportMethodFix;
import com.intellij.codeInsight.guess.GuessManager;
import com.intellij.codeInsight.lookup.*;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
@@ -47,7 +46,6 @@ import com.intellij.psi.filters.element.ExcludeSillyAssignment;
import com.intellij.psi.html.HtmlTag;
import com.intellij.psi.impl.source.PsiImmediateClassType;
import com.intellij.psi.impl.source.codeStyle.CodeEditUtil;
import com.intellij.psi.impl.source.tree.TreeUtil;
import com.intellij.psi.javadoc.PsiDocToken;
import com.intellij.psi.scope.BaseScopeProcessor;
import com.intellij.psi.scope.ElementClassFilter;
@@ -725,15 +723,15 @@ public class JavaCompletionUtil {
if (psiClass.isValid() && !psiClass.getManager().areElementsEquivalent(psiClass, resolveReference(ref))) {
final boolean staticImport = ref instanceof PsiImportStaticReferenceElement;
PsiElement newElement = staticImport
? ((PsiImportStaticReferenceElement)ref).bindToTargetClass(psiClass)
: ref.bindToElement(psiClass);
ASTNode newNode = newElement.getNode();
CodeEditUtil.disablePostponedFormatting(newNode);
ASTNode next = TreeUtil.nextLeaf(newNode);
if (next != null) {
CodeEditUtil.disablePostponedFormatting(next);
CodeEditUtil.setAllowSuspendNodesReformatting(true);
PsiElement newElement;
try {
newElement = staticImport
? ((PsiImportStaticReferenceElement)ref).bindToTargetClass(psiClass)
: ref.bindToElement(psiClass);
}
finally {
CodeEditUtil.setAllowSuspendNodesReformatting(false);
}
newElement = CodeInsightUtilBase.forcePsiPostprocessAndRestoreElement(newElement);
@@ -0,0 +1,6 @@
public class Foo {
public static void fpp(Object o) {
FileInpSt<caret>
((Object) o).notify();
}
}
@@ -0,0 +1,8 @@
import java.io.FileInputStream;
public class Foo {
public static void fpp(Object o) {
FileInputStream<caret>
((Object) o).notify();
}
}
@@ -607,6 +607,8 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
public void testSpacesAroundEq() throws Throwable { doTest('='); }
public void testClassBeforeCast() throws Throwable { doTest '\n' }
public void testNoAllClassesOnQualifiedReference() throws Throwable {
configureByFile(getTestName(false) + ".java");
assertEmpty(myItems);