IDEA-25267 Smart Completion after continue&break should filter labels

This commit is contained in:
peter
2012-03-07 20:24:50 +04:00
parent 3a2ec64c13
commit 91fb524a30
7 changed files with 59 additions and 13 deletions
@@ -30,6 +30,7 @@ import com.intellij.psi.filters.getters.*;
import com.intellij.psi.filters.types.AssignableFromFilter;
import com.intellij.psi.filters.types.AssignableGroupFilter;
import com.intellij.psi.filters.types.AssignableToFilter;
import com.intellij.psi.impl.source.PsiLabelReference;
import com.intellij.psi.impl.source.resolve.reference.impl.PsiMultiReference;
import com.intellij.psi.infos.CandidateInfo;
import com.intellij.psi.javadoc.PsiDocTag;
@@ -345,6 +346,18 @@ public class JavaSmartCompletionContributor extends CompletionContributor {
extend(CompletionType.SMART, AFTER_NEW, new JavaInheritorsGetter(ConstructorInsertHandler.SMART_INSTANCE));
extend(CompletionType.SMART, psiElement().afterLeaf(PsiKeyword.BREAK, PsiKeyword.CONTINUE), new CompletionProvider<CompletionParameters>() {
@Override
protected void addCompletions(@NotNull CompletionParameters parameters,
ProcessingContext context,
@NotNull CompletionResultSet result) {
PsiReference ref = parameters.getPosition().getContainingFile().findReferenceAt(parameters.getOffset());
if (ref instanceof PsiLabelReference) {
JavaCompletionContributor.processLabelReference(result, (PsiLabelReference)ref);
}
}
});
}
private static void addExpectedTypeMembers(CompletionParameters params,