From 392d90ae1bb29baeaaf6067ca41e931ef5614395 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 8 Mar 2012 16:50:30 +0400 Subject: [PATCH] IDEA-82427 Code Completion produces bad code inside if brackets --- .../completion/JavaChainLookupElement.java | 15 +++++++++++++-- .../normal/AllAssertClassesMethods.java | 2 +- .../normal/AllAssertClassesMethods_after.java | 7 +++++++ .../completion/JavaAutoPopupTest.groovy | 4 ++-- .../completion/NormalCompletionTest.groovy | 6 ++++-- .../groovy/completion/PropertyChain_after.groovy | 2 +- 6 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods_after.java diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaChainLookupElement.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaChainLookupElement.java index d76684f2c04b..a6831183a779 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaChainLookupElement.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaChainLookupElement.java @@ -21,8 +21,10 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.util.ClassConditionKey; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; +import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.util.text.CharArrayUtil; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -100,10 +102,12 @@ public class JavaChainLookupElement extends LookupElementDecorator= 0 && formatEnd >= 0) { + CodeStyleManager.getInstance(context.getProject()).reformatRange(context.getFile(), formatStart, formatEnd); + } } protected boolean shouldParenthesizeQualifier(final PsiFile file, final int startOffset, final int endOffset) { diff --git a/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java index d244868f05f6..b9b429bb758e 100644 --- a/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java +++ b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods.java @@ -1,5 +1,5 @@ class Foo { { - Assert. + if (Assert.) } } \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods_after.java b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods_after.java new file mode 100644 index 000000000000..56571f2c951f --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/AllAssertClassesMethods_after.java @@ -0,0 +1,7 @@ +import bar.Assert; + +class Foo { + { + if (Assert.bar()) + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy index e52e56e697ae..4e4700b484ca 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/JavaAutoPopupTest.groovy @@ -45,7 +45,6 @@ import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.progress.ProgressManager import com.intellij.psi.PsiFile import com.intellij.psi.PsiJavaFile -import com.intellij.util.Consumer /** * @author peter @@ -1230,7 +1229,8 @@ class Foo {{ type 'fo\n' myFixture.checkResult '''import foo.Util; -class Foo {{ Util.foo(); }}''' +class Foo {{ + Util.foo(); }}''' } public void testPackageQualifier() { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index 19129803adc0..383ca96325ae 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -1292,10 +1292,12 @@ public class ListUtils { } public void testAllAssertClassesMethods() { - myFixture.addClass 'package foo; public class Assert { public static void foo() {} }' - myFixture.addClass 'package bar; public class Assert { public static void bar() {} }' + myFixture.addClass 'package foo; public class Assert { public static boolean foo() {} }' + myFixture.addClass 'package bar; public class Assert { public static boolean bar() {} }' configure() assert myFixture.lookupElementStrings == ['Assert.bar', 'Assert.foo'] + myFixture.type '\n' + checkResult() } } diff --git a/plugins/groovy/testdata/groovy/completion/PropertyChain_after.groovy b/plugins/groovy/testdata/groovy/completion/PropertyChain_after.groovy index 84c0be7c409a..9bd54e567e90 100644 --- a/plugins/groovy/testdata/groovy/completion/PropertyChain_after.groovy +++ b/plugins/groovy/testdata/groovy/completion/PropertyChain_after.groovy @@ -2,7 +2,7 @@ class A { File myFile; def foo() { - myFile.canonicalPath + myFile.canonicalPath } } \ No newline at end of file