From 5a2fd23efda501c4e476c72d750de66153cf1d41 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 6 Jun 2012 18:36:15 +0400 Subject: [PATCH] do not change editor during batch inspection --- .../daemon/impl/GeneralHighlightingPass.java | 6 +++--- .../DefaultHighlightVisitorBasedInspection.java | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/GeneralHighlightingPass.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/GeneralHighlightingPass.java index d327dba2249e..2d991fff0e72 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/GeneralHighlightingPass.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/GeneralHighlightingPass.java @@ -673,9 +673,9 @@ public class GeneralHighlightingPass extends ProgressableTextEditorHighlightingP analyzeByVisitors(progress, visitors, holder, 0, action); } - private void killAbandonedHighlightsUnder(@NotNull final TextRange range, - @NotNull final HighlightInfoHolder holder, - @NotNull final ProgressIndicator progress) { + protected void killAbandonedHighlightsUnder(@NotNull final TextRange range, + @NotNull final HighlightInfoHolder holder, + @NotNull final ProgressIndicator progress) { DaemonCodeAnalyzerImpl.processHighlights(getDocument(), myProject, null, range.getStartOffset(), range.getEndOffset(), new Processor() { @Override public boolean process(final HighlightInfo existing) { diff --git a/platform/lang-impl/src/com/intellij/codeInspection/DefaultHighlightVisitorBasedInspection.java b/platform/lang-impl/src/com/intellij/codeInspection/DefaultHighlightVisitorBasedInspection.java index 935c80220789..3fb18d97b96c 100644 --- a/platform/lang-impl/src/com/intellij/codeInspection/DefaultHighlightVisitorBasedInspection.java +++ b/platform/lang-impl/src/com/intellij/codeInspection/DefaultHighlightVisitorBasedInspection.java @@ -19,10 +19,10 @@ package com.intellij.codeInspection; import com.intellij.codeHighlighting.HighlightDisplayLevel; import com.intellij.codeInsight.daemon.impl.*; import com.intellij.codeInsight.daemon.impl.analysis.HighlightInfoHolder; -import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.lang.annotation.HighlightSeverity; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; @@ -158,6 +158,7 @@ public abstract class DefaultHighlightVisitorBasedInspection extends GlobalSimpl final Project project = file.getProject(); Document document = PsiDocumentManager.getInstance(project).getDocument(file); if (document == null) return; + final HighlightInfoFilter[] filters = ApplicationManager.getApplication().getExtensions(HighlightInfoFilter.EXTENSION_POINT_NAME); GeneralHighlightingPass pass = new GeneralHighlightingPass(project, file, document, 0, file.getTextLength(), true) { @NotNull @@ -168,7 +169,6 @@ public abstract class DefaultHighlightVisitorBasedInspection extends GlobalSimpl @Override protected HighlightInfoHolder createInfoHolder(final PsiFile file) { - final HighlightInfoFilter[] filters = ApplicationManager.getApplication().getExtensions(HighlightInfoFilter.EXTENSION_POINT_NAME); return new HighlightInfoHolder(file, getColorsScheme(), filters){ @Override public boolean add(@Nullable HighlightInfo info) { @@ -182,6 +182,13 @@ public abstract class DefaultHighlightVisitorBasedInspection extends GlobalSimpl } }; } + + @Override + protected void killAbandonedHighlightsUnder(@NotNull TextRange range, + @NotNull HighlightInfoHolder holder, + @NotNull ProgressIndicator progress) { + // do not mess with real editor highlights + } }; pass.setFailFastOnAcquireReadAction(false); DaemonProgressIndicator progress = new DaemonProgressIndicator();