!(JavaCompletionParameters instanceof CompletionParameters)

This commit is contained in:
peter
2011-03-25 13:32:21 +01:00
parent 843e3f3268
commit 695c0350bc
3 changed files with 18 additions and 8 deletions
@@ -42,7 +42,7 @@ class CollectionsUtilityMethodsProvider {
final PsiType type = parameters.getExpectedType();
final PsiType defaultType = parameters.getDefaultType();
final PsiElement pparent = parent.getParent();
if (parameters.getInvocationCount() > 1 ||
if (parameters.getParameters().getInvocationCount() > 1 ||
pparent instanceof PsiReturnStatement ||
pparent instanceof PsiConditionalExpression && pparent.getParent() instanceof PsiReturnStatement) {
addCollectionMethod(result, type, defaultType, JAVA_UTIL_LIST, "emptyList", collectionsClass);
@@ -50,7 +50,7 @@ class CollectionsUtilityMethodsProvider {
addCollectionMethod(result, type, defaultType, JAVA_UTIL_MAP, "emptyMap", collectionsClass);
}
if (parameters.getInvocationCount() > 1) {
if (parameters.getParameters().getInvocationCount() > 1) {
addCollectionMethod(result, type, defaultType, JAVA_UTIL_LIST, "singletonList", collectionsClass);
addCollectionMethod(result, type, defaultType, JAVA_UTIL_SET, "singleton", collectionsClass);
addCollectionMethod(result, type, defaultType, JAVA_UTIL_MAP, "singletonMap", collectionsClass);
@@ -15,17 +15,19 @@
*/
package com.intellij.codeInsight.completion;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiType;
import com.intellij.codeInsight.ExpectedTypeInfo;
/**
* @author peter
*/
public class JavaSmartCompletionParameters extends CompletionParameters{
public class JavaSmartCompletionParameters {
private final CompletionParameters myParameters;
private final ExpectedTypeInfo myExpectedType;
public JavaSmartCompletionParameters(CompletionParameters parameters, final ExpectedTypeInfo expectedType) {
super(parameters.getPosition(), parameters.getOriginalFile(), parameters.getCompletionType(), parameters.getOffset(), parameters.getInvocationCount());
myParameters = parameters;
myExpectedType = expectedType;
}
@@ -36,4 +38,12 @@ public class JavaSmartCompletionParameters extends CompletionParameters{
public PsiType getDefaultType() {
return myExpectedType.getDefaultType();
}
public PsiElement getPosition() {
return myParameters.getPosition();
}
public CompletionParameters getParameters() {
return myParameters;
}
}
@@ -110,7 +110,7 @@ public class ReferenceExpressionCompletionContributor {
final PsiElement element = parameters.getPosition();
if (JavaSmartCompletionContributor.INSIDE_TYPECAST_EXPRESSION.accepts(element)) return;
final int offset = parameters.getOffset();
final int offset = parameters.getParameters().getOffset();
final PsiReference reference = element.getContainingFile().findReferenceAt(offset);
if (reference != null) {
final ElementFilter filter = getReferenceFilter(element, false);
@@ -118,9 +118,9 @@ public class ReferenceExpressionCompletionContributor {
result.consume(item);
}
final boolean secondTime = parameters.getInvocationCount() >= 2;
final boolean secondTime = parameters.getParameters().getInvocationCount() >= 2;
for (final LookupElement item : JavaSmartCompletionContributor.completeReference(element, reference, filter, false, parameters)) {
for (final LookupElement item : JavaSmartCompletionContributor.completeReference(element, reference, filter, false, parameters.getParameters())) {
addSingleArrayElementAccess(element, item, parameters, result);
if (secondTime) {
@@ -164,7 +164,7 @@ public class ReferenceExpressionCompletionContributor {
public boolean isClassAcceptable(Class hintClass) {
return true;
}
}), false, parameters);
}), false, parameters.getParameters());
for (LookupElement lookupElement : elements) {
if (lookupElement.getObject() instanceof PsiMethod) {
final JavaMethodCallElement item = lookupElement.as(JavaMethodCallElement.CLASS_CONDITION_KEY);