complete return in switch-case

This commit is contained in:
peter
2011-10-11 18:50:44 +02:00
parent 1c21b23f1b
commit 7dc4415a90
4 changed files with 19 additions and 5 deletions

View File

@@ -22,10 +22,7 @@ import com.intellij.codeInsight.completion.util.ParenthesesInsertHandler;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.codeInsight.lookup.LookupItem;
import com.intellij.codeInsight.lookup.TailTypeDecorator;
import com.intellij.patterns.ElementPattern;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.patterns.PsiJavaElementPattern;
import com.intellij.patterns.PsiJavaPatterns;
import com.intellij.patterns.*;
import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.*;
import com.intellij.psi.filters.*;
@@ -478,7 +475,9 @@ public class JavaCompletionData extends JavaAwareCompletionData{
if (INSIDE_SWITCH.isAcceptable(position, position)) {
result.addElement(new OverrideableSpace(createKeyword(position, PsiKeyword.CASE), TailType.SPACE));
result.addElement(new OverrideableSpace(createKeyword(position, PsiKeyword.DEFAULT), TailType.CASE_COLON));
return;
if (!psiElement().afterLeaf(psiElement().withText(":").withParent(PsiSwitchLabelStatement.class)).accepts(position)) {
return;
}
}
addBreakContinue(result, position);

View File

@@ -0,0 +1,7 @@
public class Demo {
{
switch(x) {
case y: ret<caret>
}
}
}

View File

@@ -0,0 +1,7 @@
public class Demo {
{
switch(x) {
case y: return<caret>
}
}
}

View File

@@ -669,6 +669,7 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
}
public void testSecondMethodParameter() throws Throwable { doTest(); }
public void testReturnInCase() throws Throwable { doTest(); }
public void testAnnotationWithoutValueMethod() throws Throwable {
configureByFile(getTestName(false) + ".java");