suggest to pass several parameters in autopopup

This commit is contained in:
peter
2012-02-15 16:37:48 +01:00
parent ec5f0a171c
commit fe13245171
7 changed files with 41 additions and 8 deletions
@@ -537,6 +537,9 @@ public class JavaCompletionData extends JavaAwareCompletionData{
}
});
}
if (SameSignatureCallParametersProvider.IN_CALL_ARGUMENT.accepts(position)) {
new SameSignatureCallParametersProvider().addCompletions(parameters, new ProcessingContext(), result);
}
}
}
@@ -111,10 +111,7 @@ public class JavaSmartCompletionContributor extends CompletionContributor {
public JavaSmartCompletionContributor() {
extend(CompletionType.SMART, SmartCastProvider.INSIDE_TYPECAST_TYPE, new SmartCastProvider());
extend(CompletionType.SMART,
psiElement().beforeLeaf(psiElement(JavaTokenType.RPARENTH)).afterLeaf("(").withParent(
psiElement(PsiReferenceExpression.class).withParent(
psiElement(PsiExpressionList.class).withParent(PsiCall.class))), new SameSignatureCallParametersProvider());
extend(CompletionType.SMART, SameSignatureCallParametersProvider.IN_CALL_ARGUMENT, new SameSignatureCallParametersProvider());
extend(CompletionType.SMART, psiElement().afterLeaf(PsiKeyword.INSTANCEOF), new CompletionProvider<CompletionParameters>() {
protected void addCompletions(@NotNull final CompletionParameters parameters, final ProcessingContext context, @NotNull final CompletionResultSet result) {
@@ -67,11 +67,11 @@ public class PreferLocalVariablesLiteralsAndAnnoMethodsWeigher extends LookupEle
return MyResult.localOrParameter;
}
if (myCompletionType == CompletionType.SMART) {
if (object instanceof String && item.getUserData(JavaCompletionUtil.SUPER_METHOD_PARAMETERS) == Boolean.TRUE) {
return MyResult.superMethodParameters;
}
if (object instanceof String && item.getUserData(JavaCompletionUtil.SUPER_METHOD_PARAMETERS) == Boolean.TRUE) {
return MyResult.superMethodParameters;
}
if (myCompletionType == CompletionType.SMART) {
if (item.getUserData(CollectionsUtilityMethodsProvider.COLLECTION_FACTORY) != null) {
return MyResult.collectionFactory;
}
@@ -23,6 +23,7 @@ import com.intellij.codeInsight.lookup.TailTypeDecorator;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.patterns.PsiElementPattern;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiSuperMethodUtil;
import com.intellij.psi.util.PsiTreeUtil;
@@ -37,10 +38,17 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.intellij.patterns.PlatformPatterns.psiElement;
/**
* @author peter
*/
class SameSignatureCallParametersProvider extends CompletionProvider<CompletionParameters> {
static final PsiElementPattern.Capture<PsiElement> IN_CALL_ARGUMENT =
psiElement().beforeLeaf(psiElement(JavaTokenType.RPARENTH)).afterLeaf("(").withParent(
psiElement(PsiReferenceExpression.class).withParent(
psiElement(PsiExpressionList.class).withParent(PsiCall.class)));
@Override
protected void addCompletions(@NotNull CompletionParameters parameters,
ProcessingContext context,