immutable matcher via MatchedLookupElement

This commit is contained in:
peter
2011-04-18 14:52:41 +02:00
parent 10646035be
commit bae263e8e8
9 changed files with 107 additions and 73 deletions
@@ -34,8 +34,9 @@ public class BasicToClassNameDelegator extends AbstractBasicToClassNameDelegator
@Override
protected void updateProperties(LookupElement lookupElement) {
if (lookupElement instanceof JavaPsiClassReferenceElement) {
((JavaPsiClassReferenceElement)lookupElement).setAutoCompletionPolicy(AutoCompletionPolicy.NEVER_AUTOCOMPLETE);
JavaPsiClassReferenceElement classElement = lookupElement.as(JavaPsiClassReferenceElement.CLASS_CONDITION_KEY);
if (classElement != null) {
classElement.setAutoCompletionPolicy(AutoCompletionPolicy.NEVER_AUTOCOMPLETE);
}
lookupElement.putUserData(XmlCompletionContributor.WORD_COMPLETION_COMPATIBLE, Boolean.TRUE); //todo think of a less dirty interaction
}
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.lookup.DefaultLookupItemRenderer;
import com.intellij.codeInsight.lookup.LookupElementPresentation;
import com.intellij.codeInsight.lookup.LookupItem;
import com.intellij.codeInsight.lookup.impl.JavaElementLookupRenderer;
import com.intellij.openapi.util.ClassConditionKey;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
@@ -33,6 +34,7 @@ import org.jetbrains.annotations.Nullable;
* @author peter
*/
public class JavaPsiClassReferenceElement extends LookupItem<Object> {
public static final ClassConditionKey<JavaPsiClassReferenceElement> CLASS_CONDITION_KEY = ClassConditionKey.create(JavaPsiClassReferenceElement.class);
private final Object myClass;
private final String myQualifiedName;