类 com.intellij.codeInsight.completion.PrefixMatcher 源码实例Demo

下面列出了怎么用 com.intellij.codeInsight.completion.PrefixMatcher 的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: consulo   文件: LookupTypedHandler.java

private static boolean completeTillTypedCharOccurrence(char charTyped, LookupImpl lookup, LookupElement item) {
  PrefixMatcher matcher = lookup.itemMatcher(item);
  final String oldPrefix = matcher.getPrefix() + lookup.getAdditionalPrefix();
  PrefixMatcher expanded = matcher.cloneWithPrefix(oldPrefix + charTyped);
  if (expanded.prefixMatches(item)) {
    for (String s : item.getAllLookupStrings()) {
      if (matcher.prefixMatches(s)) {
        int i = -1;
        while (true) {
          i = s.indexOf(charTyped, i + 1);
          if (i < 0) break;
          final String newPrefix = s.substring(0, i + 1);
          if (expanded.prefixMatches(newPrefix)) {
            lookup.replacePrefix(oldPrefix, newPrefix);
            return true;
          }
        }
      }
    }
  }
  return false;
}
 

@NotNull
@Override
public Collection<LookupElement> getLookupElements(@NotNull PhpToolboxCompletionContributorParameter parameter) {
    return PhpIndex.getInstance(parameter.getProject())
        .getAllFunctionNames(PrefixMatcher.ALWAYS_TRUE).stream().map(
            s -> LookupElementBuilder.create(s).withIcon(PhpIcons.FUNCTION)
        )
        .collect(Collectors.toCollection(HashSet::new));
}
 

@NotNull
@Override
public Collection<LookupElement> getLookupElements(@NotNull PhpToolboxCompletionContributorParameter parameter) {
    return PhpIndex.getInstance(parameter.getProject())
        .getAllFunctionNames(PrefixMatcher.ALWAYS_TRUE).stream().map(
            s -> LookupElementBuilder.create(s).withIcon(PhpIcons.FUNCTION)
        )
        .collect(Collectors.toCollection(HashSet::new));
}
 

public static int getBestMatchingDegree(LookupElement element, PrefixMatcher matcher) {
  int max = Integer.MIN_VALUE;
  for (String lookupString : element.getAllLookupStrings()) {
    max = Math.max(max, matcher.matchingDegree(lookupString));
  }
  return -max;
}
 
源代码5 项目: consulo   文件: CamelHumpMatcher.java

@Override
@Nonnull
public PrefixMatcher cloneWithPrefix(@Nonnull final String prefix) {
  if (prefix.equals(myPrefix)) {
    return this;
  }

  return new CamelHumpMatcher(prefix, myCaseSensitive, myTypoTolerant);
}
 
源代码6 项目: consulo   文件: LookupArranger.java

@Override
@Nonnull
public PrefixMatcher itemMatcher(@Nonnull LookupElement item) {
  PrefixMatcher matcher = item.getUserData(myMatcherKey);
  if (matcher == null) {
    throw new AssertionError("Item not in lookup: item=" + item + "; lookup items=" + myItems);
  }
  return matcher;
}
 
源代码7 项目: consulo   文件: LookupArranger.java

private boolean prefixMatches(LookupElement item) {
  PrefixMatcher matcher = itemMatcher(item);
  if (!myAdditionalPrefix.isEmpty()) {
    matcher = matcher.cloneWithPrefix(matcher.getPrefix() + myAdditionalPrefix);
  }
  return matcher.prefixMatches(item);
}
 
源代码8 项目: consulo   文件: LookupArranger.java

public final void prefixReplaced(Lookup lookup, String newPrefix) {
  ArrayList<LookupElement> itemCopy = new ArrayList<>(myItems);
  myItems.clear();
  for (LookupElement item : itemCopy) {
    if (item.isValid()) {
      PrefixMatcher matcher = itemMatcher(item).cloneWithPrefix(newPrefix);
      if (matcher.prefixMatches(item)) {
        item.putUserData(myMatcherKey, matcher);
        myItems.add(item);
      }
    }
  }

  prefixChanged(lookup);
}
 
源代码9 项目: litho   文件: ReplacingConsumerTest.java

private static CompletionResult createCompletionResultFor(PsiClass cls) {
  TestLookupElement lookupElement = new TestLookupElement(cls);
  PrefixMatcher matcher = Mockito.mock(PrefixMatcher.class);
  Mockito.when(matcher.prefixMatches(any(LookupElement.class))).thenReturn(true);
  return CompletionResult.wrap(lookupElement, matcher, Mockito.mock(CompletionSorter.class));
}
 
源代码10 项目: litho   文件: ReplacingConsumerTest.java

TestCompletionResultSet() {
  super(
      Mockito.mock(PrefixMatcher.class),
      Mockito.mock(Consumer.class),
      Mockito.mock(CompletionContributor.class));
}
 
源代码11 项目: litho   文件: ReplacingConsumerTest.java

@Override
public CompletionResultSet withPrefixMatcher(PrefixMatcher matcher) {
  return null;
}
 

@NotNull
@Override
public PrefixMatcher cloneWithPrefix(@NotNull String prefix) {
    return new GaugePrefixMatcher(prefix);
}
 
源代码13 项目: intellij-latte   文件: LattePhpUtil.java

public static Collection<String> getAllExistingFunctionNames(Project project, PrefixMatcher prefixMatcher) {
    return getPhpIndex(project).getAllFunctionNames(prefixMatcher);
}
 
源代码14 项目: intellij-latte   文件: LattePhpUtil.java

public static Collection<String> getAllExistingClassNames(Project project, PrefixMatcher prefixMatcher) {
    return getPhpIndex(project).getAllClassNames(prefixMatcher);
}
 
源代码15 项目: consulo   文件: Lookup.java

@Nonnull
PrefixMatcher itemMatcher(@Nonnull LookupElement item);
 
源代码16 项目: consulo   文件: WeighingContext.java

@Nonnull
PrefixMatcher itemMatcher(@Nonnull LookupElement item);
 
源代码17 项目: consulo   文件: BetterPrefixMatcher.java

public BetterPrefixMatcher(PrefixMatcher original, int minMatchingDegree) {
  super(original.getPrefix());
  myOriginal = original;
  myHumpMatcher = original instanceof CamelHumpMatcher ? (CamelHumpMatcher)original : null;
  myMinMatchingDegree = minMatchingDegree;
}
 
源代码18 项目: consulo   文件: BetterPrefixMatcher.java

@Nonnull
protected BetterPrefixMatcher createCopy(PrefixMatcher original, int degree) {
  return new BetterPrefixMatcher(original, degree);
}
 
源代码19 项目: consulo   文件: BetterPrefixMatcher.java

@Nonnull
@Override
public PrefixMatcher cloneWithPrefix(@Nonnull String prefix) {
  return createCopy(myOriginal.cloneWithPrefix(prefix), myMinMatchingDegree);
}
 
源代码20 项目: consulo   文件: BetterPrefixMatcher.java

private AutoRestarting(CompletionResultSet result, PrefixMatcher original, int minMatchingDegree) {
  super(original, minMatchingDegree);
  myResult = result;
}
 
源代码21 项目: consulo   文件: BetterPrefixMatcher.java

@Nonnull
@Override
protected BetterPrefixMatcher createCopy(PrefixMatcher original, int degree) {
  return new AutoRestarting(myResult, original, degree);
}
 
源代码22 项目: consulo   文件: LookupArranger.java

public void registerMatcher(@Nonnull LookupElement item, @Nonnull PrefixMatcher matcher) {
  item.putUserData(myMatcherKey, matcher);
}
 

@Nullable
public PrefixMatcher createPrefixMatcher(@Nonnull final String prefix) {
  return new PlainPrefixMatcher(prefix);
}