下面列出了怎么用 com.intellij.codeInsight.completion.PlainPrefixMatcher 的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
protected void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {
String prefix = getPrefix(parameters);
resultSet = resultSet.withPrefixMatcher(new PlainPrefixMatcher(prefix));
PsiFile specFile = parameters.getOriginalFile();
SpecDetail specDetail = PsiTreeUtil.getChildOfType(specFile, SpecDetail.class);
List<SpecStep> stepsInFile = new ArrayList<>();
addContextSteps(specDetail, stepsInFile);
addStepsInScenarios(specFile, stepsInFile);
Set<String> staticArgs = getArgsFromSteps(stepsInFile);
for (String arg : staticArgs) {
if (arg != null) {
LookupElementBuilder item = LookupElementBuilder.create(arg);
resultSet.addElement(item);
}
}
}
private void buildResultSet(CompletionResultSet resultSet, VirtualFile virtualFile, String keyStr, String value) {
if (!isIgnored(keyStr)) {
LookupElementBuilder builder = LookupElementBuilder.create(keyStr + "}}")
.appendTailText(value, true)
.withTypeText("[" + virtualFile.getPresentableName() + "]", true)
.withPresentableText(keyStr + " = ");
resultSet.withPrefixMatcher(new PlainPrefixMatcher("")).addElement(builder);
}
}
@Override
public void buildResultSet(CompletionResultSet resultSet, VirtualFile virtualFile) {
getProperties(virtualFile).forEach((key, value) -> {
String keyStr = (String) key;
if (!isIgnored(keyStr)) {
LookupElementBuilder builder = LookupElementBuilder.create(keyStr + "}}")
.appendTailText(String.valueOf(value), true)
.withTypeText("[" + virtualFile.getPresentableName() + "]", true)
.withPresentableText(keyStr + " = ");
resultSet.withPrefixMatcher(new PlainPrefixMatcher("")).addElement(builder);
}
});
}
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {
String prefix = getPrefix(parameters);
resultSet = resultSet.withPrefixMatcher(new PlainPrefixMatcher(prefix));
SpecDetail specDetail = PsiTreeUtil.getChildOfType(parameters.getOriginalFile(), SpecDetail.class);
if (specDetail == null)
return;
SpecTable table = specDetail.getDataTable();
if (table != null) {
List<String> headers = table.getTableHeader().getHeaders();
for (String header : headers) {
LookupElementBuilder item = LookupElementBuilder.create(header);
resultSet.addElement(item);
}
}
}
@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));
}
}
}
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {
String prefix = getPrefix(parameters);
resultSet = resultSet.withPrefixMatcher(new PlainPrefixMatcher(prefix));
Collection<ConceptDynamicArg> args = PsiTreeUtil.collectElementsOfType(parameters.getOriginalFile(), ConceptDynamicArg.class);
for (ConceptDynamicArg arg : args) {
LookupElementBuilder item = LookupElementBuilder.create(arg.getText().replaceAll("<|>", ""));
resultSet.addElement(item);
}
}
public static void showTemplatesLookup(final Project project, final Editor editor, Map<TemplateImpl, String> template2Argument) {
final LookupImpl lookup = (LookupImpl)LookupManager.getInstance(project).createLookup(editor, LookupElement.EMPTY_ARRAY, "",
new LookupArranger.DefaultArranger());
for (TemplateImpl template : template2Argument.keySet()) {
String prefix = computePrefix(template, template2Argument.get(template));
lookup.addItem(createTemplateElement(template), new PlainPrefixMatcher(prefix));
}
showLookup(lookup, template2Argument);
}
@Nullable
public PrefixMatcher createPrefixMatcher(@Nonnull final String prefix) {
return new PlainPrefixMatcher(prefix);
}