private static void addElement(@NotNull PsiElement o, @NotNull ResolveState state, boolean forTypes, boolean vendoringEnabled, @NotNull Set<String> processedNames, @NotNull CompletionResultSet set) { LookupElement lookup = createLookupElement(o, state, forTypes, vendoringEnabled); if (lookup != null) { String lookupString = lookup.getLookupString(); if (!processedNames.contains(lookupString)) { set.addElement(lookup); processedNames.add(lookupString); } } }
@Nullable @Override public Result calculateResult(ExpressionContext context) { LookupElement firstElement = ArrayUtil.getFirstElement(calculateLookupItems(context)); return new TextResult(firstElement != null ? firstElement.getLookupString() : ""); }
@Override public void renderElement(@NotNull LookupElement element, @NotNull LookupElementPresentation p) { PsiElement o = element.getPsiElement(); if (!(o instanceof GoNamedElement)) return; GoNamedElement v = (GoNamedElement)o; GoType type = typesDisabled ? null : v.getGoType(null); String text = GoPsiImplUtil.getText(type); Icon icon = v instanceof GoVarDefinition ? GoIcons.VARIABLE : v instanceof GoParamDefinition ? GoIcons.PARAMETER : v instanceof GoFieldDefinition ? GoIcons.FIELD : v instanceof GoReceiver ? GoIcons.RECEIVER : v instanceof GoConstDefinition ? GoIcons.CONSTANT : v instanceof GoAnonymousFieldDefinition ? GoIcons.FIELD : null; p.setIcon(icon); p.setTailText(calcTailTextForFields(v), true); p.setTypeText(text); p.setTypeGrayed(true); p.setItemText(element.getLookupString()); } };
@Override public void renderElement(@NotNull LookupElement element, @NotNull LookupElementPresentation p) { PsiElement o = element.getPsiElement(); if (!(o instanceof GoNamedSignatureOwner)) return; GoNamedSignatureOwner f = (GoNamedSignatureOwner)o; Icon icon = f instanceof GoMethodDeclaration || f instanceof GoMethodSpec ? GoIcons.METHOD : GoIcons.FUNCTION; String typeText = ""; GoSignature signature = f.getSignature(); String paramText = ""; if (signature != null) { GoResult result = signature.getResult(); paramText = signature.getParameters().getText(); if (result != null) typeText = result.getText(); } p.setIcon(icon); p.setTypeText(typeText); p.setTypeGrayed(true); p.setTailText(calcTailText(f), true); p.setItemText(element.getLookupString() + paramText); } };
protected void selectLookupItem(@NotNull String selectItem) { LookupElement[] lookupElements = myFixture.getLookupElements(); assertNotNull("Lookup is empty", lookupElements); LookupElement toSelect = null; for (LookupElement lookupElement : lookupElements) { if (selectItem.equals(lookupElement.getLookupString())) { toSelect = lookupElement; break; } } assertNotNull(selectItem + " not found in lookup", toSelect); myFixture.getLookup().setCurrentItem(toSelect); myFixture.type(Lookup.NORMAL_SELECT_CHAR); }
@NotNull @Override public String getLookupString() { return this.lookupElement.getLookupString(); }
private Map<String, LookupElement> getModelLookupElements() { if(this.lookupElements == null) { List<LookupElement> modelLookupElements = EntityReference.getModelLookupElements(this.project); this.lookupElements = new HashMap<>(); for(LookupElement lookupElement: modelLookupElements) { this.lookupElements.put(lookupElement.getLookupString(), lookupElement); } } return this.lookupElements; }
public void testIssue462() { myFixture.configureByFiles("self_completion.ex"); PsiElement head = myFixture .getFile() .findElementAt(myFixture.getCaretOffset() - 1) .getParent() .getParent(); assertInstanceOf(head, Call.class); PsiReference reference = head.getReference(); assertNotNull("Call definition head does not have a reference", reference); Object[] variants = reference.getVariants(); int count = 0; for (Object variant : variants) { if (variant instanceof LookupElement) { LookupElement lookupElement = (LookupElement) variant; if (lookupElement.getLookupString().equals("the_function_currently_being_defined")) { count += 1; } } } assertEquals("There is at least one entry for the function currently being defined in variants", 0, count); }
@Override public boolean value(LookupElement lookupElement) { return "myfoobar_car_index".equals(lookupElement.getLookupString()); } }));
@Override public boolean value(LookupElement lookupElement) { return lookupElement.getLookupString().equals("Foo\\Bar\\Repository\\FooBarRepository"); } }));
@NotNull private String getStringBeforeAutoCompletedValue( final InsertionContext context, final LookupElement item) { return context .getDocument() .getText() .substring(0, context.getTailOffset() - item.getLookupString().length()); } }
@NotNull private String getStringBeforeAutoCompletedValue( final InsertionContext context, final LookupElement item) { final int tailOffset = context.getDocument().getText().substring(0, context.getTailOffset()).endsWith("\"") ? context.getTailOffset() : context.getTailOffset() + 1; return context .getDocument() .getText() .substring(0, tailOffset) .replace("\"" + item.getLookupString() + "\"", ""); }
public void handleInsert(@NotNull InsertionContext context, @NotNull LookupElement lookupElement) { PhpInsertHandlerUtil.insertStringAtCaret(context.getEditor(), "()"); context.getEditor().getCaretModel().moveCaretRelatively(-1, 0, false, false, true); String lookupString = lookupElement.getLookupString(); if(AnnotationIndex.getControllerAnnotations().containsKey(lookupString)) { String useStatement = AnnotationIndex.getControllerAnnotations().get(lookupString).getUse(); if(null != useStatement) { AnnotationUseImporter.insertUse(context, useStatement); } } }
private boolean hasStartingOrEndingQuoteOfType( final InsertionContext insertionContext, final LookupElement lookupElement, final char quoteType) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = hasStartingQuote(insertionContext, quoteType, startOfLookupStringOffset); final boolean hasEndingQuote = hasEndingQuote(insertionContext, caretOffset, quoteType); return hasStartingQuote || hasEndingQuote; }
private void handleStartingQuote( final InsertionContext insertionContext, final LookupElement lookupElement) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = insertionContext.getDocument().getText().charAt(startOfLookupStringOffset - 1) == '\"'; if (!hasStartingQuote) { insertionContext.getDocument().insertString(startOfLookupStringOffset, "\""); } }
private void handleStartingQuote( final InsertionContext insertionContext, final LookupElement lookupElement) { final int caretOffset = insertionContext.getEditor().getCaretModel().getOffset(); final int startOfLookupStringOffset = caretOffset - lookupElement.getLookupString().length(); final boolean hasStartingQuote = insertionContext.getDocument().getText().charAt(startOfLookupStringOffset - 1) == '\"'; if (!hasStartingQuote) { insertionContext.getDocument().insertString(startOfLookupStringOffset, "\""); } }
/** * @see EventDispatcherSubscriberUtil#getEventNameLookupElements */ public void testGetEventNameLookupElementsForTaggedKernelListener() { Collection<LookupElement> eventNameLookupElements = EventDispatcherSubscriberUtil.getEventNameLookupElements(getProject()); ContainerUtil.find(eventNameLookupElements, lookupElement -> lookupElement.getLookupString().equals("kernel.exception.xml") ); ContainerUtil.find(eventNameLookupElements, lookupElement -> lookupElement.getLookupString().equals("kernel.exception.yml") ); }
public void testGetBlockLookupElements() { PsiFile psiFile = myFixture.configureByText("foo.html.twig", "{% block name %}{% endblock %}"); PsiFile psiFile2 = myFixture.configureByText("foo_2.html.twig", "{% block foobar %}{% endblock %}"); myFixture.configureByText("foo_3.html.twig", "{% block foobar_2 %}{% endblock %}"); Collection<LookupElement> lookupElements = TwigUtil.getBlockLookupElements(getProject(), Arrays.asList(psiFile.getVirtualFile(), psiFile2.getVirtualFile())); assertSize(2, lookupElements); assertNotNull(lookupElements.stream().filter(lookupElement -> "name".equals(lookupElement.getLookupString())).findFirst().orElse(null)); assertNotNull(lookupElements.stream().filter(lookupElement -> "foobar".equals(lookupElement.getLookupString())).findFirst().orElse(null)); }
public void testThatTagsByFindTaggedServiceIdsOfPhpContainerBuilderIsCompleted() { Collection<LookupElement> lookupElements = TagNameCompletionProvider.getTagLookupElements(getProject()); assertNotNull(ContainerUtil.find(lookupElements, lookupElement -> "my.acme_mailer.transport.tag".equals(lookupElement.getLookupString()) )); } }
public void testThatTagInServiceWithValidIdIsCompleted() { Collection<LookupElement> lookupElements = TagNameCompletionProvider.getTagLookupElements(getProject()); assertNotNull(ContainerUtil.find(lookupElements, lookupElement -> "acme_mailer.transport".equals(lookupElement.getLookupString()) )); }