mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup LookupItem
This commit is contained in:
@@ -60,7 +60,7 @@ public class DefaultInsertHandler extends TemplateInsertHandler implements Clone
|
||||
|
||||
InsertHandlerState state = new InsertHandlerState(context.getSelectionEndOffset(), context.getSelectionEndOffset());
|
||||
|
||||
if (CompletionUtil.isOverwrite(item, completionChar)) {
|
||||
if (completionChar == Lookup.REPLACE_SELECT_CHAR) {
|
||||
removeEndOfIdentifier(context);
|
||||
}
|
||||
else if(context.getOffsetMap().getOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET) != context.getSelectionEndOffset()) {
|
||||
|
||||
@@ -142,12 +142,12 @@ public class JavaInheritorsGetter extends CompletionProvider<CompletionParameter
|
||||
}
|
||||
}
|
||||
}
|
||||
final LookupItem item = PsiTypeLookupItem.createLookupItem(psiType, parameters.getPosition());
|
||||
final PsiTypeLookupItem item = PsiTypeLookupItem.createLookupItem(psiType, parameters.getPosition());
|
||||
JavaCompletionUtil.setShowFQN(item);
|
||||
|
||||
if (psiClass.isInterface() || psiClass.hasModifierProperty(PsiModifier.ABSTRACT)) {
|
||||
item.setAutoCompletionPolicy(AutoCompletionPolicy.NEVER_AUTOCOMPLETE);
|
||||
item.setAttribute(LookupItem.INDICATE_ANONYMOUS, "");
|
||||
item.setIndicateAnonymous(true);
|
||||
}
|
||||
|
||||
return LookupElementDecorator.withInsertHandler(item, myConstructorInsertHandler);
|
||||
|
||||
+2
-1
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.TailType;
|
||||
import com.intellij.codeInsight.lookup.DefaultLookupItemRenderer;
|
||||
import com.intellij.codeInsight.lookup.LookupElementPresentation;
|
||||
import com.intellij.codeInsight.lookup.LookupItem;
|
||||
import com.intellij.codeInsight.lookup.PsiTypeLookupItem;
|
||||
import com.intellij.codeInsight.lookup.impl.JavaElementLookupRenderer;
|
||||
import com.intellij.openapi.util.ClassConditionKey;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
@@ -110,7 +111,7 @@ public class JavaPsiClassReferenceElement extends LookupItem<Object> {
|
||||
String tailText = StringUtil.notNullize((String) item.getAttribute(LookupItem.TAIL_TEXT_ATTR));
|
||||
PsiSubstitutor substitutor = (PsiSubstitutor)item.getAttribute(LookupItem.SUBSTITUTOR);
|
||||
|
||||
if (item.getAttribute(LookupItem.INDICATE_ANONYMOUS) != null &&
|
||||
if (item instanceof PsiTypeLookupItem && ((PsiTypeLookupItem)item).isIndicateAnonymous() &&
|
||||
(psiClass.isInterface() || psiClass.hasModifierProperty(PsiModifier.ABSTRACT))) {
|
||||
tailText = "{...}" + tailText;
|
||||
}
|
||||
|
||||
@@ -37,12 +37,22 @@ import org.jetbrains.annotations.Nullable;
|
||||
public class PsiTypeLookupItem extends LookupItem {
|
||||
public static final ClassConditionKey<PsiTypeLookupItem> CLASS_CONDITION_KEY = ClassConditionKey.create(PsiTypeLookupItem.class);
|
||||
private final boolean myDiamond;
|
||||
private boolean myIndicateAnonymous;
|
||||
|
||||
private PsiTypeLookupItem(Object o, @NotNull @NonNls String lookupString, boolean diamond) {
|
||||
super(o, lookupString);
|
||||
myDiamond = diamond;
|
||||
}
|
||||
|
||||
|
||||
public void setIndicateAnonymous(boolean indicateAnonymous) {
|
||||
myIndicateAnonymous = indicateAnonymous;
|
||||
}
|
||||
|
||||
public boolean isIndicateAnonymous() {
|
||||
return myIndicateAnonymous;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object o) {
|
||||
return super.equals(o) && o instanceof PsiTypeLookupItem && getBracketsCount() == ((PsiTypeLookupItem) o).getBracketsCount();
|
||||
|
||||
@@ -39,9 +39,6 @@ public abstract class MutableLookupElement<T> extends LookupElement{
|
||||
@NotNull
|
||||
public abstract MutableLookupElement<T> setPriority(double priority);
|
||||
|
||||
@NotNull
|
||||
public abstract MutableLookupElement<T> setGrouping(int grouping);
|
||||
|
||||
@NotNull
|
||||
public abstract MutableLookupElement<T> setPresentableText(@NotNull String displayText);
|
||||
|
||||
|
||||
+1
-1
@@ -619,7 +619,7 @@ public class CodeCompletionHandlerBase implements CodeInsightActionHandler {
|
||||
public void run() {
|
||||
final int idEndOffset = Math.max(caretOffset, indicator.getIdentifierEndOffset());
|
||||
indicator.getOffsetMap().addOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET, idEndOffset);
|
||||
if (idEndOffset != indicator.getSelectionEndOffset() && CompletionUtil.isOverwrite(item, completionChar)) {
|
||||
if (idEndOffset != indicator.getSelectionEndOffset() && completionChar == Lookup.REPLACE_SELECT_CHAR) {
|
||||
editor.getDocument().deleteString(indicator.getSelectionEndOffset(), idEndOffset);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,13 +132,6 @@ public class CompletionUtil {
|
||||
}
|
||||
|
||||
|
||||
static boolean isOverwrite(final LookupElement item, final char completionChar) {
|
||||
return completionChar != Lookup.AUTO_INSERT_SELECT_CHAR
|
||||
? completionChar == Lookup.REPLACE_SELECT_CHAR
|
||||
: item.getUserData(LookupItem.OVERWRITE_ON_AUTOCOMPLETE_ATTR) != null;
|
||||
}
|
||||
|
||||
|
||||
public static boolean shouldShowFeature(final CompletionParameters parameters, @NonNls final String id) {
|
||||
if (FeatureUsageTracker.getInstance().isToBeAdvertisedInLookup(id, parameters.getPosition().getProject())) {
|
||||
FeatureUsageTracker.getInstance().triggerFeatureShown(id);
|
||||
|
||||
@@ -52,12 +52,9 @@ public class LookupItem<T> extends MutableLookupElement<T> implements Comparable
|
||||
public static final Key<Object> FORCE_SHOW_SIGNATURE_ATTR = Key.create("forceShowSignature");
|
||||
|
||||
public static final Key<Object> BRACKETS_COUNT_ATTR = Key.create("BRACKETS_COUNT_ATTR");
|
||||
public static final Key<Object> OVERWRITE_ON_AUTOCOMPLETE_ATTR = Key.create("OVERWRITE_ON_AUTOCOMPLETE_ATTR");
|
||||
public static final Object FORCE_QUALIFY = Key.create("FORCE_QUALIFY");
|
||||
public static final Object SUBSTITUTOR = Key.create("SUBSTITUTOR");
|
||||
public static final Object FORCE_LOOKUP_STRING = Key.create("FORCE_LOOKUP_STRING");
|
||||
public static final Object TYPE = Key.create("TYPE");
|
||||
public static final Object INDICATE_ANONYMOUS = Key.create("INDICATE ANONYMOUS");
|
||||
public static final Key<Object> DEPRECATED_ATTR = Key.create("DEPRECATED");
|
||||
|
||||
public static final Object CASE_INSENSITIVE = Key.create("CASE_INSENSITIVE");
|
||||
@@ -68,7 +65,6 @@ public class LookupItem<T> extends MutableLookupElement<T> implements Comparable
|
||||
private String myLookupString;
|
||||
private InsertHandler myInsertHandler;
|
||||
private double myPriority;
|
||||
private int myGrouping;
|
||||
private Map<Object,Object> myAttributes = null;
|
||||
public static final LookupItem[] EMPTY_ARRAY = new LookupItem[0];
|
||||
private final Set<String> myAllLookupStrings = new THashSet<String>();
|
||||
@@ -305,12 +301,6 @@ public class LookupItem<T> extends MutableLookupElement<T> implements Comparable
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public LookupItem<T> setGrouping(final int grouping) {
|
||||
myGrouping = grouping;
|
||||
return this;
|
||||
}
|
||||
|
||||
public final double getPriority() {
|
||||
return myPriority;
|
||||
}
|
||||
|
||||
+1
-3
@@ -82,9 +82,7 @@ class XPathInsertHandler implements InsertHandler {
|
||||
adjustIdentifierEnd(context, item);
|
||||
|
||||
final int idEndOffset = context.getOffsetMap().getOffset(CompletionInitializationContext.IDENTIFIER_END_OFFSET);
|
||||
final boolean isOverwrite = c != 0
|
||||
? c == com.intellij.codeInsight.lookup.Lookup.REPLACE_SELECT_CHAR
|
||||
: item.getUserData(LookupItem.OVERWRITE_ON_AUTOCOMPLETE_ATTR) != null;
|
||||
final boolean isOverwrite = c == com.intellij.codeInsight.lookup.Lookup.REPLACE_SELECT_CHAR;
|
||||
if (idEndOffset != context.getSelectionEndOffset() && isOverwrite) {
|
||||
context.getEditor().getDocument().deleteString(context.getSelectionEndOffset(), idEndOffset);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user