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));
}
}
}
}