Search in sources :

Example 11 with Processor

use of com.intellij.util.Processor in project intellij-community by JetBrains.

the class PsiSearchHelperImpl method distributePrimitives.

private static void distributePrimitives(@NotNull Map<SearchRequestCollector, Processor<PsiReference>> collectors, @NotNull Set<RequestWithProcessor> locals, @NotNull MultiMap<Set<IdIndexEntry>, RequestWithProcessor> globals, @NotNull List<Computable<Boolean>> customs, @NotNull Map<RequestWithProcessor, Processor<PsiElement>> localProcessors, @NotNull ProgressIndicator progress) {
    for (final Map.Entry<SearchRequestCollector, Processor<PsiReference>> entry : collectors.entrySet()) {
        final Processor<PsiReference> processor = entry.getValue();
        SearchRequestCollector collector = entry.getKey();
        for (final PsiSearchRequest primitive : collector.takeSearchRequests()) {
            final SearchScope scope = primitive.searchScope;
            if (scope instanceof LocalSearchScope) {
                registerRequest(locals, primitive, processor);
            } else {
                Set<IdIndexEntry> key = new HashSet<>(getWordEntries(primitive.word, primitive.caseSensitive));
                registerRequest(globals.getModifiable(key), primitive, processor);
            }
        }
        for (final Processor<Processor<PsiReference>> customAction : collector.takeCustomSearchActions()) {
            customs.add(() -> customAction.process(processor));
        }
    }
    for (Map.Entry<Set<IdIndexEntry>, Collection<RequestWithProcessor>> entry : globals.entrySet()) {
        for (RequestWithProcessor singleRequest : entry.getValue()) {
            PsiSearchRequest primitive = singleRequest.request;
            StringSearcher searcher = new StringSearcher(primitive.word, primitive.caseSensitive, true, false);
            BulkOccurrenceProcessor adapted = adaptProcessor(primitive, singleRequest.refProcessor);
            Processor<PsiElement> localProcessor = localProcessor(adapted, progress, searcher);
            assert !localProcessors.containsKey(singleRequest) || localProcessors.get(singleRequest) == localProcessor;
            localProcessors.put(singleRequest, localProcessor);
        }
    }
}
Also used : ReadActionProcessor(com.intellij.openapi.application.ReadActionProcessor) Processor(com.intellij.util.Processor) THashSet(gnu.trove.THashSet) IdIndexEntry(com.intellij.psi.impl.cache.impl.id.IdIndexEntry) THashMap(gnu.trove.THashMap) MultiMap(com.intellij.util.containers.MultiMap) THashSet(gnu.trove.THashSet) StringSearcher(com.intellij.util.text.StringSearcher)

Example 12 with Processor

use of com.intellij.util.Processor in project intellij-community by JetBrains.

the class PsiSearchHelperImpl method processRequests.

@Override
public boolean processRequests(@NotNull SearchRequestCollector collector, @NotNull Processor<PsiReference> processor) {
    final Map<SearchRequestCollector, Processor<PsiReference>> collectors = ContainerUtil.newHashMap();
    collectors.put(collector, processor);
    ProgressIndicator progress = getOrCreateIndicator();
    appendCollectorsFromQueryRequests(collectors);
    boolean result;
    do {
        MultiMap<Set<IdIndexEntry>, RequestWithProcessor> globals = new MultiMap<>();
        final List<Computable<Boolean>> customs = ContainerUtil.newArrayList();
        final Set<RequestWithProcessor> locals = ContainerUtil.newLinkedHashSet();
        Map<RequestWithProcessor, Processor<PsiElement>> localProcessors = new THashMap<>();
        distributePrimitives(collectors, locals, globals, customs, localProcessors, progress);
        result = processGlobalRequestsOptimized(globals, progress, localProcessors);
        if (result) {
            for (RequestWithProcessor local : locals) {
                result = processSingleRequest(local.request, local.refProcessor);
                if (!result)
                    break;
            }
            if (result) {
                for (Computable<Boolean> custom : customs) {
                    result = custom.compute();
                    if (!result)
                        break;
                }
            }
            if (!result)
                break;
        }
    } while (appendCollectorsFromQueryRequests(collectors));
    return result;
}
Also used : ReadActionProcessor(com.intellij.openapi.application.ReadActionProcessor) Processor(com.intellij.util.Processor) THashSet(gnu.trove.THashSet) MultiMap(com.intellij.util.containers.MultiMap) THashMap(gnu.trove.THashMap) EmptyProgressIndicator(com.intellij.openapi.progress.EmptyProgressIndicator) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean)

Example 13 with Processor

use of com.intellij.util.Processor in project intellij-community by JetBrains.

the class LocalInspectionsPass method visitPriorityElementsAndInit.

@NotNull
private List<InspectionContext> visitPriorityElementsAndInit(@NotNull Map<LocalInspectionToolWrapper, Set<String>> toolToSpecifiedLanguageIds, @NotNull final InspectionManager iManager, final boolean isOnTheFly, @NotNull final ProgressIndicator indicator, @NotNull final List<PsiElement> elements, @NotNull final LocalInspectionToolSession session, @NotNull final Set<String> elementDialectIds) {
    final List<InspectionContext> init = new ArrayList<>();
    List<Map.Entry<LocalInspectionToolWrapper, Set<String>>> entries = new ArrayList<>(toolToSpecifiedLanguageIds.entrySet());
    Processor<Map.Entry<LocalInspectionToolWrapper, Set<String>>> processor = pair -> {
        LocalInspectionToolWrapper toolWrapper = pair.getKey();
        Set<String> dialectIdsSpecifiedForTool = pair.getValue();
        runToolOnElements(toolWrapper, dialectIdsSpecifiedForTool, iManager, isOnTheFly, indicator, elements, session, init, elementDialectIds);
        return true;
    };
    boolean result = JobLauncher.getInstance().invokeConcurrentlyUnderProgress(entries, indicator, myFailFastOnAcquireReadAction, processor);
    if (!result)
        throw new ProcessCanceledException();
    return init;
}
Also used : Language(com.intellij.lang.Language) InjectedLanguageManager(com.intellij.lang.injection.InjectedLanguageManager) Trinity(com.intellij.openapi.util.Trinity) UIUtil(com.intellij.util.ui.UIUtil) com.intellij.codeInspection.ex(com.intellij.codeInspection.ex) HighlightSeverity(com.intellij.lang.annotation.HighlightSeverity) Document(com.intellij.openapi.editor.Document) THashSet(gnu.trove.THashSet) Keymap(com.intellij.openapi.keymap.Keymap) THashMap(gnu.trove.THashMap) IdeActions(com.intellij.openapi.actionSystem.IdeActions) ProjectInspectionProfileManager(com.intellij.profile.codeInspection.ProjectInspectionProfileManager) HighlightingLevelManager(com.intellij.codeInsight.daemon.impl.analysis.HighlightingLevelManager) Logger(com.intellij.openapi.diagnostic.Logger) InspectionToolPresentation(com.intellij.codeInspection.ui.InspectionToolPresentation) CommonProcessors(com.intellij.util.CommonProcessors) RangeMarker(com.intellij.openapi.editor.RangeMarker) ProgressManager(com.intellij.openapi.progress.ProgressManager) DocumentWindow(com.intellij.injected.editor.DocumentWindow) HighlightDisplayKey(com.intellij.codeInsight.daemon.HighlightDisplayKey) EditorColorsScheme(com.intellij.openapi.editor.colors.EditorColorsScheme) TextRange(com.intellij.openapi.util.TextRange) KeymapUtil(com.intellij.openapi.keymap.KeymapUtil) Pass(com.intellij.codeHighlighting.Pass) Nullable(org.jetbrains.annotations.Nullable) DaemonBundle(com.intellij.codeInsight.daemon.DaemonBundle) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) TextAttributes(com.intellij.openapi.editor.markup.TextAttributes) Processor(com.intellij.util.Processor) SmartHashSet(com.intellij.util.containers.SmartHashSet) ApplicationManager(com.intellij.openapi.application.ApplicationManager) XmlStringUtil(com.intellij.xml.util.XmlStringUtil) IntentionAction(com.intellij.codeInsight.intention.IntentionAction) com.intellij.psi(com.intellij.psi) NotNull(org.jetbrains.annotations.NotNull) InspectionProjectProfileManager(com.intellij.profile.codeInspection.InspectionProjectProfileManager) java.util(java.util) KeymapManager(com.intellij.openapi.keymap.KeymapManager) JobLauncher(com.intellij.concurrency.JobLauncher) NonNls(org.jetbrains.annotations.NonNls) TransferToEDTQueue(com.intellij.util.containers.TransferToEDTQueue) QuickFixAction(com.intellij.codeInsight.daemon.impl.quickfix.QuickFixAction) ContainerUtil(com.intellij.util.containers.ContainerUtil) Function(java.util.function.Function) ConcurrentMap(java.util.concurrent.ConcurrentMap) ProcessCanceledException(com.intellij.openapi.progress.ProcessCanceledException) EmptyIntentionAction(com.intellij.codeInsight.intention.EmptyIntentionAction) InjectedLanguageUtil(com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil) StringUtil(com.intellij.openapi.util.text.StringUtil) ConcurrencyUtil(com.intellij.util.ConcurrencyUtil) com.intellij.codeInspection(com.intellij.codeInspection) HighlightDisplayLevel(com.intellij.codeHighlighting.HighlightDisplayLevel) Pair(com.intellij.openapi.util.Pair) Condition(com.intellij.openapi.util.Condition) THashSet(gnu.trove.THashSet) SmartHashSet(com.intellij.util.containers.SmartHashSet) ProcessCanceledException(com.intellij.openapi.progress.ProcessCanceledException) NotNull(org.jetbrains.annotations.NotNull)

Example 14 with Processor

use of com.intellij.util.Processor in project intellij-community by JetBrains.

the class ShowUsagesAction method showElementUsages.

private void showElementUsages(final Editor editor, @NotNull final RelativePoint popupPosition, @NotNull final FindUsagesHandler handler, final int maxUsages, @NotNull final FindUsagesOptions options) {
    ApplicationManager.getApplication().assertIsDispatchThread();
    final UsageViewSettings usageViewSettings = UsageViewSettings.getInstance();
    final UsageViewSettings savedGlobalSettings = new UsageViewSettings();
    savedGlobalSettings.loadState(usageViewSettings);
    usageViewSettings.loadState(myUsageViewSettings);
    final Project project = handler.getProject();
    UsageViewManager manager = UsageViewManager.getInstance(project);
    FindUsagesManager findUsagesManager = ((FindManagerImpl) FindManager.getInstance(project)).getFindUsagesManager();
    final UsageViewPresentation presentation = findUsagesManager.createPresentation(handler, options);
    presentation.setDetachedMode(true);
    UsageViewImpl usageView = (UsageViewImpl) manager.createUsageView(UsageTarget.EMPTY_ARRAY, Usage.EMPTY_ARRAY, presentation, null);
    if (editor != null) {
        PsiReference reference = TargetElementUtil.findReference(editor);
        if (reference != null) {
            UsageInfo2UsageAdapter origin = new UsageInfo2UsageAdapter(new UsageInfo(reference));
            usageView.setOriginUsage(origin);
        }
    }
    Disposer.register(usageView, () -> {
        myUsageViewSettings.loadState(usageViewSettings);
        usageViewSettings.loadState(savedGlobalSettings);
    });
    final MyTable table = new MyTable();
    final AsyncProcessIcon processIcon = new AsyncProcessIcon("xxx");
    addUsageNodes(usageView.getRoot(), usageView, new ArrayList<>());
    final List<Usage> usages = new ArrayList<>();
    final Set<UsageNode> visibleNodes = new LinkedHashSet<>();
    final List<UsageNode> data = collectData(usages, visibleNodes, usageView, presentation);
    final AtomicInteger outOfScopeUsages = new AtomicInteger();
    setTableModel(table, usageView, data, outOfScopeUsages, options.searchScope);
    boolean isPreviewMode = Boolean.TRUE == PreviewManager.SERVICE.preview(handler.getProject(), UsagesPreviewPanelProvider.ID, Pair.create(usageView, table), false);
    Runnable itemChosenCallback = prepareTable(table, editor, popupPosition, handler, maxUsages, options, isPreviewMode);
    @Nullable final JBPopup popup = isPreviewMode ? null : createUsagePopup(usages, visibleNodes, handler, editor, popupPosition, maxUsages, usageView, options, table, itemChosenCallback, presentation, processIcon);
    if (popup != null) {
        Disposer.register(popup, usageView);
        // show popup only if find usages takes more than 300ms, otherwise it would flicker needlessly
        Alarm alarm = new Alarm(usageView);
        alarm.addRequest(() -> showPopupIfNeedTo(popup, popupPosition), 300);
    }
    final PingEDT pingEDT = new PingEDT("Rebuild popup in EDT", o -> popup != null && popup.isDisposed(), 100, () -> {
        if (popup != null && popup.isDisposed())
            return;
        final List<UsageNode> nodes = new ArrayList<>();
        List<Usage> copy;
        synchronized (usages) {
            // open up popup as soon as several usages 've been found
            if (popup != null && !popup.isVisible() && (usages.size() <= 1 || !showPopupIfNeedTo(popup, popupPosition))) {
                return;
            }
            addUsageNodes(usageView.getRoot(), usageView, nodes);
            copy = new ArrayList<>(usages);
        }
        rebuildTable(usageView, copy, nodes, table, popup, presentation, popupPosition, !processIcon.isDisposed(), outOfScopeUsages, options.searchScope);
    });
    final MessageBusConnection messageBusConnection = project.getMessageBus().connect(usageView);
    messageBusConnection.subscribe(UsageFilteringRuleProvider.RULES_CHANGED, pingEDT::ping);
    final UsageTarget[] myUsageTarget = { new PsiElement2UsageTargetAdapter(handler.getPsiElement()) };
    Processor<Usage> collect = usage -> {
        if (!UsageViewManagerImpl.isInScope(usage, options.searchScope)) {
            if (outOfScopeUsages.getAndIncrement() == 0) {
                visibleNodes.add(USAGES_OUTSIDE_SCOPE_NODE);
                usages.add(USAGES_OUTSIDE_SCOPE_SEPARATOR);
            }
            return true;
        }
        synchronized (usages) {
            if (visibleNodes.size() >= maxUsages)
                return false;
            if (UsageViewManager.isSelfUsage(usage, myUsageTarget))
                return true;
            UsageNode node = ReadAction.compute(() -> usageView.doAppendUsage(usage));
            usages.add(usage);
            if (node != null) {
                visibleNodes.add(node);
                boolean continueSearch = true;
                if (visibleNodes.size() == maxUsages) {
                    visibleNodes.add(MORE_USAGES_SEPARATOR_NODE);
                    usages.add(MORE_USAGES_SEPARATOR);
                    continueSearch = false;
                }
                pingEDT.ping();
                return continueSearch;
            }
        }
        return true;
    };
    final ProgressIndicator indicator = FindUsagesManager.startProcessUsages(handler, handler.getPrimaryElements(), handler.getSecondaryElements(), collect, options, () -> ApplicationManager.getApplication().invokeLater(() -> {
        Disposer.dispose(processIcon);
        Container parent = processIcon.getParent();
        if (parent != null) {
            parent.remove(processIcon);
            parent.repaint();
        }
        // repaint title
        pingEDT.ping();
        synchronized (usages) {
            if (visibleNodes.isEmpty()) {
                if (usages.isEmpty()) {
                    String text = UsageViewBundle.message("no.usages.found.in", searchScopePresentableName(options));
                    hint(editor, text, handler, popupPosition, maxUsages, options, false);
                    cancel(popup);
                }
            // else all usages filtered out
            } else if (visibleNodes.size() == 1) {
                if (usages.size() == 1) {
                    //the only usage
                    Usage usage = visibleNodes.iterator().next().getUsage();
                    if (usage == USAGES_OUTSIDE_SCOPE_SEPARATOR) {
                        hint(editor, UsageViewManagerImpl.outOfScopeMessage(outOfScopeUsages.get(), options.searchScope), handler, popupPosition, maxUsages, options, true);
                    } else {
                        String message = UsageViewBundle.message("show.usages.only.usage", searchScopePresentableName(options));
                        navigateAndHint(usage, message, handler, popupPosition, maxUsages, options);
                    }
                    cancel(popup);
                } else {
                    assert usages.size() > 1 : usages;
                    // usage view can filter usages down to one
                    Usage visibleUsage = visibleNodes.iterator().next().getUsage();
                    if (areAllUsagesInOneLine(visibleUsage, usages)) {
                        String hint = UsageViewBundle.message("all.usages.are.in.this.line", usages.size(), searchScopePresentableName(options));
                        navigateAndHint(visibleUsage, hint, handler, popupPosition, maxUsages, options);
                        cancel(popup);
                    }
                }
            } else {
                if (popup != null) {
                    String title = presentation.getTabText();
                    boolean shouldShowMoreSeparator = visibleNodes.contains(MORE_USAGES_SEPARATOR_NODE);
                    String fullTitle = getFullTitle(usages, title, shouldShowMoreSeparator, visibleNodes.size() - (shouldShowMoreSeparator ? 1 : 0), false);
                    ((AbstractPopup) popup).setCaption(fullTitle);
                }
            }
        }
    }, project.getDisposed()));
    if (popup != null) {
        Disposer.register(popup, indicator::cancel);
    }
}
Also used : UIUtil(com.intellij.util.ui.UIUtil) AllIcons(com.intellij.icons.AllIcons) MessageType(com.intellij.openapi.ui.MessageType) VirtualFile(com.intellij.openapi.vfs.VirtualFile) ColumnInfo(com.intellij.util.ui.ColumnInfo) FileEditorLocation(com.intellij.openapi.fileEditor.FileEditorLocation) TableCellRenderer(javax.swing.table.TableCellRenderer) ReadAction(com.intellij.openapi.application.ReadAction) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AsyncProcessIcon(com.intellij.util.ui.AsyncProcessIcon) Disposer(com.intellij.openapi.util.Disposer) MouseAdapter(java.awt.event.MouseAdapter) FeatureUsageTracker(com.intellij.featureStatistics.FeatureUsageTracker) TextEditor(com.intellij.openapi.fileEditor.TextEditor) com.intellij.usages.impl(com.intellij.usages.impl) HintUtil(com.intellij.codeInsight.hint.HintUtil) FindManagerImpl(com.intellij.find.impl.FindManagerImpl) PreviewManager(com.intellij.openapi.preview.PreviewManager) PsiReference(com.intellij.psi.PsiReference) GlobalSearchScope(com.intellij.psi.search.GlobalSearchScope) AbstractPopup(com.intellij.ui.popup.AbstractPopup) KeyEvent(java.awt.event.KeyEvent) FileEditor(com.intellij.openapi.fileEditor.FileEditor) KeymapUtil(com.intellij.openapi.keymap.KeymapUtil) com.intellij.ui(com.intellij.ui) HintUpdateSupply(com.intellij.ui.popup.HintUpdateSupply) FindManager(com.intellij.find.FindManager) Nullable(org.jetbrains.annotations.Nullable) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) List(java.util.List) IdeFocusManager(com.intellij.openapi.wm.IdeFocusManager) Processor(com.intellij.util.Processor) ApplicationManager(com.intellij.openapi.application.ApplicationManager) XmlStringUtil(com.intellij.xml.util.XmlStringUtil) FindSettings(com.intellij.find.FindSettings) NotNull(org.jetbrains.annotations.NotNull) RelativePoint(com.intellij.ui.awt.RelativePoint) java.util(java.util) ArrayUtil(com.intellij.util.ArrayUtil) UsagesPreviewPanelProvider(com.intellij.find.UsagesPreviewPanelProvider) NonNls(org.jetbrains.annotations.NonNls) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) UsageInfo(com.intellij.usageView.UsageInfo) SearchScope(com.intellij.psi.search.SearchScope) KeyAdapter(java.awt.event.KeyAdapter) AtomicReference(java.util.concurrent.atomic.AtomicReference) MessageBusConnection(com.intellij.util.messages.MessageBusConnection) Comparing(com.intellij.openapi.util.Comparing) com.intellij.find.findUsages(com.intellij.find.findUsages) PsiElement(com.intellij.psi.PsiElement) Project(com.intellij.openapi.project.Project) ListTableModel(com.intellij.util.ui.ListTableModel) DataManager(com.intellij.ide.DataManager) PsiDocumentManager(com.intellij.psi.PsiDocumentManager) PlatformIcons(com.intellij.util.PlatformIcons) UsageFilteringRuleProvider(com.intellij.usages.rules.UsageFilteringRuleProvider) StringUtil(com.intellij.openapi.util.text.StringUtil) TableColumn(javax.swing.table.TableColumn) com.intellij.usages(com.intellij.usages) AsyncEditorLoader(com.intellij.openapi.fileEditor.impl.text.AsyncEditorLoader) ModelDiff(com.intellij.ide.util.gotoByName.ModelDiff) Editor(com.intellij.openapi.editor.Editor) PopupUtil(com.intellij.openapi.ui.popup.util.PopupUtil) JBPopup(com.intellij.openapi.ui.popup.JBPopup) UsageViewUtil(com.intellij.usageView.UsageViewUtil) MouseEvent(java.awt.event.MouseEvent) java.awt(java.awt) com.intellij.openapi.actionSystem(com.intellij.openapi.actionSystem) JBTable(com.intellij.ui.table.JBTable) DumbAwareAction(com.intellij.openapi.project.DumbAwareAction) PopupChooserBuilder(com.intellij.openapi.ui.popup.PopupChooserBuilder) JBPopupFactory(com.intellij.openapi.ui.popup.JBPopupFactory) Pair(com.intellij.openapi.util.Pair) TargetElementUtil(com.intellij.codeInsight.TargetElementUtil) UsageViewBundle(com.intellij.usageView.UsageViewBundle) Navigatable(com.intellij.pom.Navigatable) HintManager(com.intellij.codeInsight.hint.HintManager) TransactionGuard(com.intellij.openapi.application.TransactionGuard) Alarm(com.intellij.util.Alarm) javax.swing(javax.swing) MessageBusConnection(com.intellij.util.messages.MessageBusConnection) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) JBPopup(com.intellij.openapi.ui.popup.JBPopup) UsageInfo(com.intellij.usageView.UsageInfo) AbstractPopup(com.intellij.ui.popup.AbstractPopup) AsyncProcessIcon(com.intellij.util.ui.AsyncProcessIcon) PsiReference(com.intellij.psi.PsiReference) FindManagerImpl(com.intellij.find.impl.FindManagerImpl) Project(com.intellij.openapi.project.Project) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Alarm(com.intellij.util.Alarm) Nullable(org.jetbrains.annotations.Nullable)

Example 15 with Processor

use of com.intellij.util.Processor in project intellij-community by JetBrains.

the class GotoActionItemProvider method processIntentions.

private boolean processIntentions(String pattern, Processor<MatchedValue> consumer, DataContext dataContext) {
    MinusculeMatcher matcher = NameUtil.buildMatcher("*" + pattern, NameUtil.MatchingCaseSensitivity.NONE);
    Map<String, ApplyIntentionAction> intentionMap = myIntentions.getValue();
    JBIterable<ActionWrapper> intentions = JBIterable.from(intentionMap.keySet()).transform(intentionText -> {
        ApplyIntentionAction intentionAction = intentionMap.get(intentionText);
        if (myModel.actionMatches(pattern, matcher, intentionAction) == MatchMode.NONE)
            return null;
        return new ActionWrapper(intentionAction, intentionText, MatchMode.INTENTION, dataContext);
    }).filter(Condition.NOT_NULL);
    return processItems(pattern, intentions, consumer);
}
Also used : CollectConsumer(com.intellij.util.CollectConsumer) java.util(java.util) JBIterable(com.intellij.util.containers.JBIterable) ApplyIntentionAction(com.intellij.ide.actions.ApplyIntentionAction) MinusculeMatcher(com.intellij.psi.codeStyle.MinusculeMatcher) ContainerUtil(com.intellij.util.containers.ContainerUtil) ActionFromOptionDescriptorProvider(com.intellij.ide.ui.search.ActionFromOptionDescriptorProvider) NameUtil(com.intellij.psi.codeStyle.NameUtil) SearchableOptionsRegistrarImpl(com.intellij.ide.ui.search.SearchableOptionsRegistrarImpl) Project(com.intellij.openapi.project.Project) SearchableOptionsRegistrar(com.intellij.ide.ui.search.SearchableOptionsRegistrar) Matcher(com.intellij.util.text.Matcher) DataManager(com.intellij.ide.DataManager) ProgressManager(com.intellij.openapi.progress.ProgressManager) StringUtil(com.intellij.openapi.util.text.StringUtil) NotNullLazyValue(com.intellij.openapi.util.NotNullLazyValue) ActionManagerImpl(com.intellij.openapi.actionSystem.impl.ActionManagerImpl) com.intellij.openapi.actionSystem(com.intellij.openapi.actionSystem) Nullable(org.jetbrains.annotations.Nullable) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) GotoActionModel(com.intellij.ide.util.gotoByName.GotoActionModel) OptionDescription(com.intellij.ide.ui.search.OptionDescription) Processor(com.intellij.util.Processor) OptionsTopHitProvider(com.intellij.ide.ui.OptionsTopHitProvider) NotNull(org.jetbrains.annotations.NotNull) SearchTopHitProvider(com.intellij.ide.SearchTopHitProvider) Condition(com.intellij.openapi.util.Condition) ApplyIntentionAction(com.intellij.ide.actions.ApplyIntentionAction) MinusculeMatcher(com.intellij.psi.codeStyle.MinusculeMatcher)

Aggregations

Processor (com.intellij.util.Processor)83 NotNull (org.jetbrains.annotations.NotNull)65 Project (com.intellij.openapi.project.Project)49 Nullable (org.jetbrains.annotations.Nullable)49 ContainerUtil (com.intellij.util.containers.ContainerUtil)42 com.intellij.psi (com.intellij.psi)31 List (java.util.List)28 ApplicationManager (com.intellij.openapi.application.ApplicationManager)25 StringUtil (com.intellij.openapi.util.text.StringUtil)25 VirtualFile (com.intellij.openapi.vfs.VirtualFile)25 java.util (java.util)25 ProgressIndicator (com.intellij.openapi.progress.ProgressIndicator)24 ProgressManager (com.intellij.openapi.progress.ProgressManager)21 Logger (com.intellij.openapi.diagnostic.Logger)20 GlobalSearchScope (com.intellij.psi.search.GlobalSearchScope)20 NonNls (org.jetbrains.annotations.NonNls)18 Ref (com.intellij.openapi.util.Ref)16 Collection (java.util.Collection)16 SmartList (com.intellij.util.SmartList)14 Document (com.intellij.openapi.editor.Document)13