From 4f3ffd4ea56d4b8e7635f9838152a57fcc2a0143 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Mon, 5 Oct 2015 15:53:06 +0300 Subject: [PATCH] IDEA-145788 Intellij instance becomes unresponsive very frequently --- .../daemon/impl/ShowIntentionsPass.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ShowIntentionsPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ShowIntentionsPass.java index f32e1a9b8c11..50c502533d31 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ShowIntentionsPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/ShowIntentionsPass.java @@ -50,6 +50,7 @@ import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil; +import com.intellij.util.CommonProcessors; import com.intellij.util.PairProcessor; import com.intellij.util.Processor; import com.intellij.util.containers.ContainerUtil; @@ -317,14 +318,14 @@ public class ShowIntentionsPass extends TextEditorHighlightingPass { final int line = hostDocument.getLineNumber(offset); MarkupModelEx model = (MarkupModelEx)DocumentMarkupModel.forDocument(hostDocument, project, true); + CommonProcessors.CollectProcessor processor = new CommonProcessors.CollectProcessor(); model.processRangeHighlightersOverlappingWith(hostDocument.getLineStartOffset(line), - hostDocument.getLineEndOffset(line), new Processor() { - @Override - public boolean process(RangeHighlighterEx highlighter) { - GutterIntentionAction.addActions(project, hostEditor, hostFile, highlighter, intentions.guttersToShow); - return true; - } - }); + hostDocument.getLineEndOffset(line), + processor); + + for (RangeHighlighterEx highlighter : processor.getResults()) { + GutterIntentionAction.addActions(project, hostEditor, hostFile, highlighter, intentions.guttersToShow); + } boolean cleanup = appendCleanupCode(intentions.inspectionFixesToShow, hostFile); if (!cleanup) {