本文整理汇总了Java中com.intellij.codeInsight.completion.impl.CamelHumpMatcher类的典型用法代码示例。如果您正苦于以下问题:Java CamelHumpMatcher类的具体用法?Java CamelHumpMatcher怎么用?Java CamelHumpMatcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CamelHumpMatcher类属于com.intellij.codeInsight.completion.impl包,在下文中一共展示了CamelHumpMatcher类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: 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:JanTvrdik,项目名称:intellij-latte,代码行数:8,代码来源:GeneratedParserUtilBase.java
示例17: 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 && isWhiteSpace(prefix.charAt(prefix.length() - 1))) {
return startsWithIgnoreCase(variant, prefix);
}
return matches;
}
开发者ID:ligasgr,项目名称:intellij-xquery,代码行数:8,代码来源:GeneratedParserUtilBase.java
示例18: fillCompletionVariants
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@RequiredReadAction
@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 = dataContext.getData(VcsDataKeys.CHANGE_LISTS);
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()) {
VirtualFile virtualFile = change.getVirtualFile();
if (virtualFile != null) {
LookupElementBuilder element = LookupElementBuilder.create(virtualFile.getName()).
withIcon(VirtualFilePresentation.getIcon(virtualFile));
insensitive.addElement(element);
}
}
}
}
}
}
}
}
开发者ID:consulo,项目名称:consulo,代码行数:30,代码来源:CommitCompletionContributor.java
示例19: invoke
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
@RequiredDispatchThread
@Override
public void invoke(@Nonnull Project project, @Nonnull final Editor editor, @Nonnull PsiFile file) {
if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
LookupManager.getInstance(project).hideActiveLookup();
final CharSequence charsSequence = editor.getDocument().getCharsSequence();
final CompletionData data = computeData(editor, charsSequence);
String currentPrefix = data.myPrefix;
final CompletionState completionState = getCompletionState(editor);
String oldPrefix = completionState.oldPrefix;
CompletionVariant lastProposedVariant = completionState.lastProposedVariant;
if (lastProposedVariant == null || oldPrefix == null || !new CamelHumpMatcher(oldPrefix).isStartMatch(currentPrefix) ||
!currentPrefix.equals(lastProposedVariant.variant)) {
//we are starting over
oldPrefix = currentPrefix;
completionState.oldPrefix = oldPrefix;
lastProposedVariant = null;
}
CompletionVariant nextVariant = computeNextVariant(editor, oldPrefix, lastProposedVariant, data, file);
if (nextVariant == null) return;
int replacementEnd = data.startOffset + data.myWordUnderCursor.length();
editor.getDocument().replaceString(data.startOffset, replacementEnd, nextVariant.variant);
editor.getCaretModel().moveToOffset(data.startOffset + nextVariant.variant.length());
completionState.lastProposedVariant = nextVariant;
highlightWord(nextVariant, project, data);
}
开发者ID:consulo,项目名称:consulo,代码行数:35,代码来源:HippieWordCompletionHandler.java
示例20: addWordsForEditor
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher; //导入依赖的package包/类
private static void addWordsForEditor(final EditorEx editor,
final CamelHumpMatcher matcher,
final CharSequence chars,
final List<CompletionVariant> words,
final List<CompletionVariant> afterWords, final int caretOffset) {
int startOffset = 0;
TokenProcessor processor = new TokenProcessor() {
@Override
public boolean processToken(int start, int end) {
if ((start > caretOffset || end < caretOffset) && //skip prefix itself
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 > caretOffset) {
afterWords.add(v);
}
else {
words.add(v);
}
}
}
return true;
}
};
processWords(editor, startOffset, processor);
}
开发者ID:consulo,项目名称:consulo,代码行数:28,代码来源:HippieWordCompletionHandler.java
注:本文中的com.intellij.codeInsight.completion.impl.CamelHumpMatcher类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论