package com.thoughtworks.gauge.autocomplete; import com.intellij.codeInsight.completion.CompletionParameters; import com.intellij.codeInsight.completion.CompletionProvider; import com.intellij.codeInsight.completion.CompletionResultSet; import com.intellij.codeInsight.completion.PlainPrefixMatcher; import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.ProcessingContext; import com.thoughtworks.gauge.language.psi.ConceptStaticArg; import java.util.Collection; import static com.thoughtworks.gauge.autocomplete.StepCompletionContributor.getPrefix; public class ConceptStaticArgCompletionProvider extends CompletionProvider<CompletionParameters> { @Override protected void addCompletions(CompletionParameters parameters, ProcessingContext processingContext, CompletionResultSet resultSet) { String prefix = getPrefix(parameters); resultSet = resultSet.withPrefixMatcher(new PlainPrefixMatcher(prefix)); Collection<ConceptStaticArg> staticArgs = PsiTreeUtil.collectElementsOfType(parameters.getOriginalFile(), ConceptStaticArg.class); for (ConceptStaticArg arg : staticArgs) { if (arg != null) { String text = arg.getText().replaceFirst("\"", ""); String textWithoutQuotes = text.substring(0, text.length() - 1); if (!textWithoutQuotes.equals("")) resultSet.addElement(LookupElementBuilder.create(textWithoutQuotes)); } } } }