当前位置: 首页>>代码示例>>Java>>正文


Java CamelHumpMatcher类代码示例

本文整理汇总了Java中com.intellij.codeInsight.completion.impl.CamelHumpMatcher的典型用法代码示例。如果您正苦于以下问题:Java CamelHumpMatcher类的具体用法?Java CamelHumpMatcher怎么用?Java CamelHumpMatcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CamelHumpMatcher类属于com.intellij.codeInsight.completion.impl包,在下文中一共展示了CamelHumpMatcher类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: suggestQualifierItems

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private static Set<LookupElement> suggestQualifierItems(CompletionParameters parameters,
                                                        PsiJavaCodeReferenceElement qualifier,
                                                        ElementFilter filter) {
  String referenceName = qualifier.getReferenceName();
  if (referenceName == null) {
    return Collections.emptySet();
  }

  PrefixMatcher qMatcher = new CamelHumpMatcher(referenceName);
  Set<LookupElement> plainVariants =
    JavaSmartCompletionContributor.completeReference(qualifier, qualifier, filter, true, true, parameters, qMatcher);

  for (PsiClass aClass : PsiShortNamesCache.getInstance(qualifier.getProject()).getClassesByName(referenceName, qualifier.getResolveScope())) {
    plainVariants.add(JavaClassNameCompletionContributor.createClassLookupItem(aClass, true));
  }

  if (!plainVariants.isEmpty()) {
    return plainVariants;
  }

  final Set<LookupElement> allClasses = new LinkedHashSet<LookupElement>();
  JavaClassNameCompletionContributor.addAllClasses(parameters.withPosition(qualifier.getReferenceNameElement(), qualifier.getTextRange().getEndOffset()),
                                                   true, qMatcher, new CollectConsumer<LookupElement>(allClasses));
  return allClasses;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:26,代码来源:JavaNoVariantsDelegator.java

示例2: addCompletions

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
public void addCompletions(@NotNull CompletionParameters parameters, ProcessingContext context, @NotNull CompletionResultSet resultSet) {

        if(!Symfony2ProjectComponent.isEnabled(parameters.getPosition())) {
            return;
        }

        PhpIndex phpIndex = PhpIndex.getInstance(parameters.getOriginalFile().getProject());
        Map<String, String> entityNamespaces = ServiceXmlParserFactory.getInstance(parameters.getOriginalFile().getProject(), EntityNamesServiceParser.class).getEntityNameMap();

        // copied from PhpCompletionUtil::addClassesInNamespace looks the official way to find classes in namespaces
        // its a really performance nightmare

        Collection<String> names = phpIndex.getAllClassNames(new CamelHumpMatcher(resultSet.getPrefixMatcher().getPrefix()));
        for (String name : names) {
            Collection<PhpClass> classes = phpIndex.getClassesByName(name);

            for(Map.Entry<String, String> entry: entityNamespaces.entrySet()) {
                String namespaceFqn = PhpLangUtil.toFQN(entry.getValue());
                Collection<PhpClass> filtered = PhpCompletionUtil.filterByNamespace(classes, namespaceFqn);
                for (PhpClass phpClass : filtered) {
                    resultSet.addElement(new PhpClassLookupElement(phpClass, true, PhpClassReferenceInsertHandler.getInstance()));
                }
            }
        }
    }
 
开发者ID:Haehnchen,项目名称:idea-php-symfony2-plugin,代码行数:26,代码来源:PhpEntityClassCompletionProvider.java

示例3: suggestQualifierItems

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private static Set<LookupElement> suggestQualifierItems(CompletionParameters parameters,
                                                        PsiJavaCodeReferenceElement qualifier,
                                                        ElementFilter filter) {
  String referenceName = qualifier.getReferenceName();
  if (referenceName == null) {
    return Collections.emptySet();
  }

  PrefixMatcher qMatcher = new CamelHumpMatcher(referenceName);
  Set<LookupElement> plainVariants =
    JavaSmartCompletionContributor.completeReference(qualifier, qualifier, filter, true, true, parameters, qMatcher);

  for (PsiClass aClass : PsiShortNamesCache.getInstance(qualifier.getProject()).getClassesByName(referenceName, qualifier.getResolveScope())) {
    plainVariants.add(JavaClassNameCompletionContributor.createClassLookupItem(aClass, true));
  }

  if (!plainVariants.isEmpty()) {
    return plainVariants;
  }

  final Set<LookupElement> allClasses = new LinkedHashSet<LookupElement>();
  PsiElement qualifierName = qualifier.getReferenceNameElement();
  if (qualifierName != null) {
    JavaClassNameCompletionContributor.addAllClasses(parameters.withPosition(qualifierName, qualifierName.getTextRange().getEndOffset()),
                                                     true, qMatcher, new CollectConsumer<LookupElement>(allClasses));
  }
  return allClasses;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:29,代码来源:JavaNoVariantsDelegator.java

示例4: fillCompletionVariants

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@Override
public void fillCompletionVariants(@NotNull CompletionParameters parameters, @NotNull CompletionResultSet result) {
  PsiFile file = parameters.getOriginalFile();
  Document document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file);
  if (document != null) {
    DataContext dataContext = document.getUserData(CommitMessage.DATA_CONTEXT_KEY);
    if (dataContext != null) {
      result.stopHere();
      if (parameters.getInvocationCount() > 0) {
        ChangeList[] lists = VcsDataKeys.CHANGE_LISTS.getData(dataContext);
        if (lists != null) {
          String prefix = TextFieldWithAutoCompletionListProvider.getCompletionPrefix(parameters);
          CompletionResultSet insensitive = result.caseInsensitive().withPrefixMatcher(new CamelHumpMatcher(prefix));
          for (ChangeList list : lists) {
            for (Change change : list.getChanges()) {
              ContentRevision revision = change.getAfterRevision() == null ? change.getBeforeRevision() : change.getAfterRevision();
              if (revision != null) {
                FilePath filePath = revision.getFile();
                LookupElementBuilder element = LookupElementBuilder.create(filePath.getName()).
                    withIcon(filePath.getFileType().getIcon());
                insensitive.addElement(element);
              }
            }
          }
        }
      }
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:30,代码来源:CommitCompletionContributor.java

示例5: addWordsForEditor

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private static void addWordsForEditor(final EditorEx editor,
                                      final CamelHumpMatcher matcher,
                                      final List<CompletionVariant> words,
                                      final List<CompletionVariant> afterWords, boolean takeCaretsIntoAccount) {
  final CharSequence chars = editor.getDocument().getImmutableCharSequence();
  final int primaryCaretOffset;
  final int[] caretOffsets;
  if (takeCaretsIntoAccount) {
    CaretModel caretModel = editor.getCaretModel();
    primaryCaretOffset = caretModel.getOffset();
    caretOffsets = getCaretOffsets(caretModel);
  }
  else {
    primaryCaretOffset = 0;
    caretOffsets = new int[1];
  }
  TokenProcessor processor = new TokenProcessor() {
    @Override
    public boolean processToken(int start, int end) {
      for (int caretOffset : caretOffsets) {
        if (start <= caretOffset && end >= caretOffset) return true; //skip prefix itself
      }
      if (end - start > matcher.getPrefix().length()) {
        final String word = chars.subSequence(start, end).toString();
        if (matcher.isStartMatch(word)) {
          CompletionVariant v = new CompletionVariant(editor, word, start);
          if (end > primaryCaretOffset) {
            afterWords.add(v);
          }
          else {
            words.add(v);
          }
        }
      }
      return true;
    }
  };
  processWords(editor, 0, processor);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:40,代码来源:HippieWordCompletionHandler.java

示例6: addEmptyItem

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private void addEmptyItem(CollectionListModel<LookupElement> model) {
  LookupElement item = new EmptyLookupItem(myCalculating ? " " : LangBundle.message("completion.no.suggestions"), false);
  myMatchers.put(item, new CamelHumpMatcher(""));
  model.add(item);

  updateLookupWidth(item);
  requestResize();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:9,代码来源:LookupImpl.java

示例7: prefixMatches

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
public boolean prefixMatches(@NotNull String prefix, @NotNull String variant) {
  boolean matches = new CamelHumpMatcher(prefix, false).prefixMatches(variant.replace(' ', '_'));
  if (matches && StringUtil.isWhiteSpace(prefix.charAt(prefix.length() - 1))) {
    return StringUtil.startsWithIgnoreCase(variant, prefix);
  }
  return matches;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:GeneratedParserUtilBase.java

示例8: testMultiple

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
public void testMultiple() {
  CamelHumpMatcher.forceStartMatching(getTestRootDisposable());
  final String filePath = "/completion/directive/multiple.rst";
  myFixture.configureByFiles(filePath);
  final LookupElement[] items = myFixture.completeBasic();
  assertNotNull(items);
  assertEquals(7, items.length);

  assertEquals("caution::", items[0].getLookupString());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:11,代码来源:RestDirectiveCompletionTest.java

示例9: doTest

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private void doTest() {
  CamelHumpMatcher.forceStartMatching(getTestRootDisposable());
  final String testName = "keywordCompletion/" + getTestName(true);
  myFixture.configureByFile(testName + ".py");
  myFixture.completeBasic();
  myFixture.checkResultByFile(testName + ".after.py");
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:PythonKeywordCompletionTest.java

示例10: doTest

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private void doTest() {
  CamelHumpMatcher.forceStartMatching(getTestRootDisposable());
  final String testName = getTestName(true);
  myFixture.configureByFile(testName + ".py");
  myFixture.completeBasic();
  myFixture.checkResultByFile(testName + ".after.py");
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:Py3CompletionTest.java

示例11: setUp

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@Override
protected void setUp() throws Exception {
  super.setUp();

  addResource("http://www.springframework.org/schema/beans",
              getTestDataPath() + "/spring-beans-2.0.xsd");
  final ExternalResourceManagerEx manager = ExternalResourceManagerEx.getInstanceEx();
  myOldDoctype = manager.getDefaultHtmlDoctype(getProject());
  manager.setDefaultHtmlDoctype(XmlUtil.XHTML_URI, getProject());
  CamelHumpMatcher.forceStartMatching(getTestRootDisposable());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:12,代码来源:XmlCompletionTest.java

示例12: collectCompletionResult

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@Override
public List<LookupElement> collectCompletionResult(PsiElement psiElement, @Nullable PsiContextMatcherI<PsiElement> context) {
    List<LookupElement> result = new ArrayList<>();
    PhpIndex phpIndex = PhpIndex.getInstance(psiElement.getProject());
    String prefix = StringUtil.unquoteString(psiElement.getText());

    Collection<String> classNames = phpIndex.getAllClassNames(new CamelHumpMatcher(prefix));

    for (String className: classNames) {
        Collection<PhpClass> classesByName = phpIndex.getClassesByName(className);
        for (PhpClass phpClass: classesByName) {
            if (context != null && !context.match(phpClass)) {
                continue;
            }

            String classFqn = phpClass.getPresentableFQN();

            result.add(
                LookupElementBuilder
                    .create(classFqn)
                    .withIcon(PhpIcons.CLASS_ICON)
            );
        }
    }

    return result;
}
 
开发者ID:dkvashninbay,项目名称:magento2plugin,代码行数:28,代码来源:ClassCompletionProvider.java

示例13: getOverloadAbleClasses

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
public static Collection<LookupElement> getOverloadAbleClasses(@NotNull Project project, @NotNull String contents) {

        Collection<LookupElement> elements = new ArrayList<LookupElement>();

        // @TODO: is there a class filter on oxid, so we provide completion only for
        // "extends" classes
        PhpIndex phpIndex = PhpIndex.getInstance(project);
        for (String name : phpIndex.getAllClassNames(new CamelHumpMatcher(contents))) {
            for (PhpClass phpClass : phpIndex.getClassesByName(name)) {
                elements.add(new PhpClassLookupElement(phpClass, true, PhpClassReferenceInsertHandler.getInstance()));
            }
        }

        return elements;
    }
 
开发者ID:Haehnchen,项目名称:idea-php-oxid-plugin,代码行数:16,代码来源:OxidUtil.java

示例14: addEmptyItem

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private void addEmptyItem(CollectionListModel<LookupElement> model) {
  LookupItem<String> item = new EmptyLookupItem(myCalculating ? " " : LangBundle.message("completion.no.suggestions"), false);
  myMatchers.put(item, new CamelHumpMatcher(""));
  model.add(item);

  updateLookupWidth(item);
  requestResize();
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:9,代码来源:LookupImpl.java

示例15: fillCompletionVariants

import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@Override
public void fillCompletionVariants(CompletionParameters parameters, CompletionResultSet result) {
  PsiFile file = parameters.getOriginalFile();
  Document document = PsiDocumentManager.getInstance(file.getProject()).getDocument(file);
  if (document != null) {
    DataContext dataContext = document.getUserData(CommitMessage.DATA_CONTEXT_KEY);
    if (dataContext != null) {
      result.stopHere();
      if (parameters.getInvocationCount() > 0) {
        ChangeList[] lists = VcsDataKeys.CHANGE_LISTS.getData(dataContext);
        if (lists != null) {
          String prefix = TextFieldWithAutoCompletionListProvider.getCompletionPrefix(parameters);
          CompletionResultSet insensitive = result.caseInsensitive().withPrefixMatcher(new CamelHumpMatcher(prefix));
          for (ChangeList list : lists) {
            for (Change change : list.getChanges()) {
              ContentRevision revision = change.getAfterRevision() == null ? change.getBeforeRevision() : change.getAfterRevision();
              if (revision != null) {
                FilePath filePath = revision.getFile();
                LookupElementBuilder element = LookupElementBuilder.create(filePath.getName()).
                    withIcon(filePath.getFileType().getIcon());
                insensitive.addElement(element);
              }
            }
          }
        }
      }
    }
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:30,代码来源:CommitCompletionContributor.java


注:本文中的com.intellij.codeInsight.completion.impl.CamelHumpMatcher类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。