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


Java Processors类代码示例

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


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

示例1: findNamespaces

import com.intellij.util.Processors; //导入依赖的package包/类
public static @NotNull List<SchemaNamespaceDecl> findNamespaces(
    @NotNull Project project,
    @Nullable String namePrefix,
    @NotNull GlobalSearchScope searchScope) {

  // TODO cache all namespaces (if prefix is null)

  SchemaNamespaceByNameIndex index =
      SchemaNamespaceByNameIndex.EP_NAME.findExtension(SchemaNamespaceByNameIndex.class);

  List<String> namespaceFqns = new SmartList<>();
  index.processAllKeys(
      project,
      new FilteringProcessor<>(
          ns -> namePrefix == null || ns.startsWith(namePrefix),
          Processors.cancelableCollectProcessor(namespaceFqns)
      )
  );

  return namespaceFqns.stream()
      .flatMap(ns -> index.get(ns, project, searchScope).stream())
      .collect(Collectors.toList());
}
 
开发者ID:SumoLogic,项目名称:epigraph,代码行数:24,代码来源:SchemaIndexUtil.java

示例2: flashUsageScriptaculously

import com.intellij.util.Processors; //导入依赖的package包/类
private static void flashUsageScriptaculously(@Nonnull final Usage usage) {
  if (!(usage instanceof UsageInfo2UsageAdapter)) {
    return;
  }
  UsageInfo2UsageAdapter usageInfo = (UsageInfo2UsageAdapter)usage;

  Editor editor = usageInfo.openTextEditor(true);
  if (editor == null) return;
  TextAttributes attributes = EditorColorsManager.getInstance().getGlobalScheme().getAttributes(CodeInsightColors.BLINKING_HIGHLIGHTS_ATTRIBUTES);

  RangeBlinker rangeBlinker = new RangeBlinker(editor, attributes, 6);
  List<Segment> segments = new ArrayList<>();
  Processor<Segment> processor = Processors.cancelableCollectProcessor(segments);
  usageInfo.processRangeMarkers(processor);
  rangeBlinker.resetMarkers(segments);
  rangeBlinker.startBlinking();
}
 
开发者ID:consulo,项目名称:consulo,代码行数:18,代码来源:SearchForUsagesRunnable.java

示例3: getSuperAnnotationOwners

import com.intellij.util.Processors; //导入依赖的package包/类
public static <T extends PsiModifierListOwner> List<T> getSuperAnnotationOwners(@NotNull T element)
{
	return CachedValuesManager.getCachedValue(element, () ->
	{
		Set<PsiModifierListOwner> result = ContainerUtil.newLinkedHashSet();
		if(element instanceof PsiMethod)
		{
			collectSuperMethods(result, ((PsiMethod) element).getHierarchicalMethodSignature(), element, JavaPsiFacade.getInstance(element.getProject()).getResolveHelper());
		}
		else if(element instanceof PsiClass)
		{
			//noinspection unchecked
			InheritanceUtil.processSupers((PsiClass) element, false, (Processor) Processors.cancelableCollectProcessor(result));
		}
		else if(element instanceof PsiParameter)
		{
			collectSuperParameters(result, (PsiParameter) element);
		}

		//noinspection unchecked
		List<T> list = new ArrayList<>((Collection<? extends T>) result);

		return CachedValueProvider.Result.create(list, PsiModificationTracker.MODIFICATION_COUNT);
	});
}
 
开发者ID:consulo,项目名称:consulo-java,代码行数:26,代码来源:AnnotationUtil.java

示例4: getTypeNames

import com.intellij.util.Processors; //导入依赖的package包/类
@NotNull
public Collection<String> getTypeNames(@NotNull GlobalSearchScope scope, @Nullable IdFilter filter)
{
	Set<String> types = new THashSet<>();
	collectTypeNames(Processors.cancelableCollectProcessor(types), scope, filter);
	return types;
}
 
开发者ID:consulo,项目名称:consulo-dotnet,代码行数:8,代码来源:DotNetShortNameSearcher.java

示例5: getTypes

import com.intellij.util.Processors; //导入依赖的package包/类
@NotNull
public Collection<DotNetTypeDeclaration> getTypes(@NotNull String key, @NotNull GlobalSearchScope scope, @Nullable IdFilter filter)
{
	Set<DotNetTypeDeclaration> types = new THashSet<>();
	collectTypes(key, scope, filter, Processors.cancelableCollectProcessor(types));
	return types;
}
 
开发者ID:consulo,项目名称:consulo-dotnet,代码行数:8,代码来源:DotNetShortNameSearcher.java

示例6: findCommentsContainingIdentifier

import com.intellij.util.Processors; //导入依赖的package包/类
@Override
@Nonnull
public PsiElement[] findCommentsContainingIdentifier(@Nonnull String identifier, @Nonnull SearchScope searchScope) {
  final List<PsiElement> result = Collections.synchronizedList(new ArrayList<>());
  Processor<PsiElement> processor = Processors.cancelableCollectProcessor(result);
  processCommentsContainingIdentifier(identifier, searchScope, processor);
  return PsiUtilCore.toPsiElementArray(result);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:9,代码来源:PsiSearchHelperImpl.java

示例7: getFilesWithText

import com.intellij.util.Processors; //导入依赖的package包/类
private void getFilesWithText(@Nonnull GlobalSearchScope scope,
                              final short searchContext,
                              final boolean caseSensitively,
                              @Nonnull String text,
                              @Nonnull Collection<VirtualFile> result) {
  myManager.startBatchFilesProcessingMode();
  try {
    Processor<VirtualFile> processor = Processors.cancelableCollectProcessor(result);
    boolean success = processFilesWithText(scope, searchContext, caseSensitively, text, processor);
    // success == false means exception in index
  }
  finally {
    myManager.finishBatchFilesProcessingMode();
  }
}
 
开发者ID:consulo,项目名称:consulo,代码行数:16,代码来源:PsiSearchHelperImpl.java

示例8: collectFiles

import com.intellij.util.Processors; //导入依赖的package包/类
private void collectFiles(@Nonnull MultiMap<Set<IdIndexEntry>, RequestWithProcessor> singles,
                          @Nonnull ProgressIndicator progress,
                          @Nonnull final MultiMap<VirtualFile, RequestWithProcessor> intersectionResult,
                          @Nonnull final MultiMap<VirtualFile, RequestWithProcessor> restResult) {
  for (Map.Entry<Set<IdIndexEntry>, Collection<RequestWithProcessor>> entry : singles.entrySet()) {
    final Set<IdIndexEntry> keys = entry.getKey();
    if (keys.isEmpty()) {
      continue;
    }

    final Collection<RequestWithProcessor> processors = entry.getValue();
    final GlobalSearchScope commonScope = uniteScopes(processors);
    final Set<VirtualFile> intersectionWithContainerNameFiles = intersectionWithContainerNameFiles(commonScope, processors, keys);

    List<VirtualFile> result = new ArrayList<>();
    Processor<VirtualFile> processor = Processors.cancelableCollectProcessor(result);
    processFilesContainingAllKeys(myManager.getProject(), commonScope, null, keys, processor);
    for (final VirtualFile file : result) {
      progress.checkCanceled();
      for (final IdIndexEntry indexEntry : keys) {
        myDumbService.runReadActionInSmartMode(
                () -> FileBasedIndex.getInstance().processValues(IdIndex.NAME, indexEntry, file, (file1, value) -> {
                  int mask = value.intValue();
                  for (RequestWithProcessor single : processors) {
                    final PsiSearchRequest request = single.request;
                    if ((mask & request.searchContext) != 0 && request.searchScope.contains(file1)) {
                      MultiMap<VirtualFile, RequestWithProcessor> result1 =
                              intersectionWithContainerNameFiles == null || !intersectionWithContainerNameFiles.contains(file1) ? restResult : intersectionResult;
                      result1.putValue(file1, single);
                    }
                  }
                  return true;
                }, commonScope));
      }
    }
  }
}
 
开发者ID:consulo,项目名称:consulo,代码行数:38,代码来源:PsiSearchHelperImpl.java

示例9: intersectionWithContainerNameFiles

import com.intellij.util.Processors; //导入依赖的package包/类
/**
 * @return null means we did not find common container files
 */
@Nullable
private Set<VirtualFile> intersectionWithContainerNameFiles(@Nonnull GlobalSearchScope commonScope,
                                                            @Nonnull Collection<RequestWithProcessor> data,
                                                            @Nonnull Set<IdIndexEntry> keys) {
  String commonName = null;
  short searchContext = 0;
  boolean caseSensitive = true;
  for (RequestWithProcessor r : data) {
    String containerName = r.request.containerName;
    if (containerName != null) {
      if (commonName == null) {
        commonName = containerName;
        searchContext = r.request.searchContext;
        caseSensitive = r.request.caseSensitive;
      }
      else if (commonName.equals(containerName)) {
        searchContext |= r.request.searchContext;
        caseSensitive &= r.request.caseSensitive;
      }
      else {
        return null;
      }
    }
  }
  if (commonName == null) return null;

  List<IdIndexEntry> entries = getWordEntries(commonName, caseSensitive);
  if (entries.isEmpty()) return null;
  entries.addAll(keys); // should find words from both text and container names

  final short finalSearchContext = searchContext;
  Condition<Integer> contextMatches = context -> (context.intValue() & finalSearchContext) != 0;
  Set<VirtualFile> containerFiles = new THashSet<>();
  Processor<VirtualFile> processor = Processors.cancelableCollectProcessor(containerFiles);
  processFilesContainingAllKeys(myManager.getProject(), commonScope, contextMatches, entries, processor);

  return containerFiles;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:42,代码来源:PsiSearchHelperImpl.java

示例10: getElements

import com.intellij.util.Processors; //导入依赖的package包/类
public static <Key, Psi extends PsiElement> Collection<Psi> getElements(@Nonnull StubIndexKey<Key, Psi> indexKey,
                                                                        @Nonnull Key key,
                                                                        @Nonnull final Project project,
                                                                        @javax.annotation.Nullable final GlobalSearchScope scope,
                                                                        @Nullable IdFilter idFilter,
                                                                        @Nonnull Class<Psi> requiredClass) {
  final List<Psi> result = new SmartList<>();
  Processor<Psi> processor = Processors.cancelableCollectProcessor(result);
  getInstance().processElements(indexKey, key, project, scope, idFilter, requiredClass, processor);
  return result;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:12,代码来源:StubIndex.java

示例11: get

import com.intellij.util.Processors; //导入依赖的package包/类
@Override
public <Key, Psi extends PsiElement> Collection<Psi> get(@Nonnull StubIndexKey<Key, Psi> indexKey,
                                                         @Nonnull Key key,
                                                         @Nonnull Project project,
                                                         @Nullable GlobalSearchScope scope,
                                                         IdFilter filter) {
  final List<Psi> result = new SmartList<>();
  process(indexKey, key, project, scope, filter, Processors.cancelableCollectProcessor(result));
  return result;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:11,代码来源:StubIndexImpl.java

示例12: getAllKeys

import com.intellij.util.Processors; //导入依赖的package包/类
@Override
@Nonnull
public <K> Collection<K> getAllKeys(@Nonnull StubIndexKey<K, ?> indexKey, @Nonnull Project project) {
  Set<K> allKeys = ContainerUtil.newTroveSet();
  processAllKeys(indexKey, project, Processors.cancelableCollectProcessor(allKeys));
  return allKeys;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:8,代码来源:StubIndexImpl.java

示例13: collectResolveContexts

import com.intellij.util.Processors; //导入依赖的package包/类
@RequiredReadAction
public List<CSharpResolveContext> collectResolveContexts()
{
	String qName = myNamespaceAsElement.getPresentableQName();
	if(qName == null)
	{
		return Collections.emptyList();
	}

	Project project = myNamespaceAsElement.getProject();
	String indexableName = DotNetNamespaceStubUtil.getIndexableNamespace(qName);

	Set<DotNetTypeDeclaration> result = new THashSet<>();

	StubIndex.getInstance().processElements(CSharpIndexKeys.TYPE_WITH_EXTENSION_METHODS_INDEX, indexableName, project, myResolveScope, DotNetTypeDeclaration.class, Processors
			.cancelableCollectProcessor(result));

	Set<String> processed = new THashSet<>();

	List<CSharpResolveContext> list = new SmartList<>();
	for(DotNetTypeDeclaration typeDeclaration : result)
	{
		ProgressManager.checkCanceled();

		PsiElement wrappedDeclaration = ToNativeElementTransformers.transform(typeDeclaration);

		if(typeDeclaration instanceof CSharpTypeDeclaration && typeDeclaration.hasModifier(CSharpModifier.PARTIAL))
		{
			String vmQName = typeDeclaration.getVmQName();
			if(processed.contains(vmQName))
			{
				continue;
			}
			processed.add(vmQName);
		}

		CSharpResolveContext context = CSharpResolveContextUtil.createContext(DotNetGenericExtractor.EMPTY, myResolveScope, wrappedDeclaration);

		list.add(context);
	}
	return list.isEmpty() ? Collections.emptyList() : list;
}
 
开发者ID:consulo,项目名称:consulo-csharp,代码行数:43,代码来源:CSharpNamespaceResolveContext.java

示例14: getActionsToShow

import com.intellij.util.Processors; //导入依赖的package包/类
public static void getActionsToShow(@Nonnull final Editor hostEditor,
                                    @Nonnull final PsiFile hostFile,
                                    @Nonnull final IntentionsInfo intentions,
                                    int passIdToShowIntentionsFor) {
  final PsiElement psiElement = hostFile.findElementAt(hostEditor.getCaretModel().getOffset());
  LOG.assertTrue(psiElement == null || psiElement.isValid(), psiElement);

  int offset = hostEditor.getCaretModel().getOffset();
  final Project project = hostFile.getProject();

  List<HighlightInfo.IntentionActionDescriptor> fixes = getAvailableFixes(hostEditor, hostFile, passIdToShowIntentionsFor);
  final DaemonCodeAnalyzer codeAnalyzer = DaemonCodeAnalyzer.getInstance(project);
  final Document hostDocument = hostEditor.getDocument();
  HighlightInfo infoAtCursor = ((DaemonCodeAnalyzerImpl)codeAnalyzer).findHighlightByOffset(hostDocument, offset, true);
  if (infoAtCursor == null) {
    intentions.errorFixesToShow.addAll(fixes);
  }
  else {
    final boolean isError = infoAtCursor.getSeverity() == HighlightSeverity.ERROR;
    for (HighlightInfo.IntentionActionDescriptor fix : fixes) {
      if (fix.isError() && isError) {
        intentions.errorFixesToShow.add(fix);
      }
      else {
        intentions.inspectionFixesToShow.add(fix);
      }
    }
  }

  for (final IntentionAction action : IntentionManager.getInstance().getAvailableIntentionActions()) {
    Pair<PsiFile, Editor> place = ShowIntentionActionsHandler
            .chooseBetweenHostAndInjected(hostFile, hostEditor, (psiFile, editor) -> ShowIntentionActionsHandler.availableFor(psiFile, editor, action));

    if (place != null) {
      List<IntentionAction> enableDisableIntentionAction = new ArrayList<>();
      enableDisableIntentionAction.add(new IntentionHintComponent.EnableDisableIntentionAction(action));
      enableDisableIntentionAction.add(new IntentionHintComponent.EditIntentionSettingsAction(action));
      HighlightInfo.IntentionActionDescriptor descriptor = new HighlightInfo.IntentionActionDescriptor(action, enableDisableIntentionAction, null);
      if (!fixes.contains(descriptor)) {
        intentions.intentionsToShow.add(descriptor);
      }
    }
  }

  if (HighlightingLevelManager.getInstance(project).shouldInspect(hostFile)) {
    PsiElement intentionElement = psiElement;
    int intentionOffset = offset;
    if (psiElement instanceof PsiWhiteSpace && offset == psiElement.getTextRange().getStartOffset() && offset > 0) {
      final PsiElement prev = hostFile.findElementAt(offset - 1);
      if (prev != null && prev.isValid()) {
        intentionElement = prev;
        intentionOffset = offset - 1;
      }
    }
    if (intentionElement != null && intentionElement.getManager().isInProject(intentionElement)) {
      collectIntentionsFromDoNotShowLeveledInspections(project, hostFile, intentionElement, intentionOffset, intentions);
    }
  }

  final int line = hostDocument.getLineNumber(offset);
  MarkupModelEx model = (MarkupModelEx)DocumentMarkupModel.forDocument(hostDocument, project, true);
  List<RangeHighlighterEx> result = new ArrayList<>();
  Processor<RangeHighlighterEx> processor = Processors.cancelableCollectProcessor(result);
  model.processRangeHighlightersOverlappingWith(hostDocument.getLineStartOffset(line), hostDocument.getLineEndOffset(line), processor);

  GutterIntentionAction.addActions(hostEditor, intentions, project, result);

  boolean cleanup = appendCleanupCode(intentions.inspectionFixesToShow, hostFile);
  if (!cleanup) {
    appendCleanupCode(intentions.errorFixesToShow, hostFile);
  }

  EditorNotificationActions.collectDescriptorsForEditor(hostEditor, intentions.notificationActionsToShow);

  intentions.filterActions(hostFile);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:77,代码来源:ShowIntentionsPass.java

示例15: getInjectedPsiFiles

import com.intellij.util.Processors; //导入依赖的package包/类
@Nonnull
private Set<PsiFile> getInjectedPsiFiles(@Nonnull final List<PsiElement> elements1, @Nonnull final List<PsiElement> elements2, @Nonnull final ProgressIndicator progress) {
  ApplicationManager.getApplication().assertReadAccessAllowed();

  List<DocumentWindow> injected = InjectedLanguageManager.getInstance(myProject).getCachedInjectedDocumentsInRange(myFile, myFile.getTextRange());
  final Collection<PsiElement> hosts = new THashSet<>(elements1.size() + elements2.size() + injected.size());

  //rehighlight all injected PSI regardless the range,
  //since change in one place can lead to invalidation of injected PSI in (completely) other place.
  for (DocumentWindow documentRange : injected) {
    ProgressManager.checkCanceled();
    if (!documentRange.isValid()) continue;
    PsiFile file = PsiDocumentManager.getInstance(myProject).getPsiFile(documentRange);
    if (file == null) continue;
    PsiElement context = InjectedLanguageManager.getInstance(file.getProject()).getInjectionHost(file);
    if (context != null && context.isValid() && !file.getProject().isDisposed() && (myUpdateAll || myRestrictRange.intersects(context.getTextRange()))) {
      hosts.add(context);
    }
  }
  InjectedLanguageManagerImpl injectedLanguageManager = InjectedLanguageManagerImpl.getInstanceImpl(myProject);
  Processor<PsiElement> collectInjectableProcessor = Processors.cancelableCollectProcessor(hosts);
  injectedLanguageManager.processInjectableElements(elements1, collectInjectableProcessor);
  injectedLanguageManager.processInjectableElements(elements2, collectInjectableProcessor);

  final Set<PsiFile> outInjected = new THashSet<>();
  final PsiLanguageInjectionHost.InjectedPsiVisitor visitor = (injectedPsi, places) -> {
    synchronized (outInjected) {
      outInjected.add(injectedPsi);
    }
  };
  if (!JobLauncher.getInstance().invokeConcurrentlyUnderProgress(new ArrayList<>(hosts), progress, true, element -> {
    ApplicationManager.getApplication().assertReadAccessAllowed();
    ProgressManager.checkCanceled();
    InjectedLanguageManager.getInstance(myFile.getProject()).enumerateEx(element, myFile, false, visitor);
    return true;
  })) {
    throw new ProcessCanceledException();
  }
  synchronized (outInjected) {
    return outInjected;
  }
}
 
开发者ID:consulo,项目名称:consulo,代码行数:43,代码来源:InjectedGeneralHighlightingPass.java


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