From ed8c5c5b226e92dbae22dbb82fa97bbec3ddb24c Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Sat, 20 Jan 2018 00:43:32 +0300 Subject: [PATCH] do not show run line markers in diff editors (WEB-30734) --- .../com/intellij/codeInsight/daemon/LineMarkerInfo.java | 6 ++++++ .../codeInsight/daemon/impl/LineMarkersUtil.java | 9 +++++---- .../execution/lineMarker/RunLineMarkerProvider.java | 8 ++++++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java b/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java index 0f91fa816be2..30dd9e610950 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java +++ b/platform/lang-api/src/com/intellij/codeInsight/daemon/LineMarkerInfo.java @@ -20,6 +20,7 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.markup.GutterIconRenderer; +import com.intellij.openapi.editor.markup.MarkupEditorFilter; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.editor.markup.SeparatorPlacement; import com.intellij.openapi.project.IndexNotReadyException; @@ -141,6 +142,11 @@ public class LineMarkerInfo { myNavigateAction = navigateAction; } + @NotNull + public MarkupEditorFilter getEditorFilter() { + return MarkupEditorFilter.EMPTY; + } + @Nullable public GutterIconNavigationHandler getNavigationHandler() { return myNavigationHandler; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersUtil.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersUtil.java index a3fddb7634a4..9243399f5d85 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersUtil.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/LineMarkersUtil.java @@ -23,10 +23,7 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.ex.MarkupModelEx; import com.intellij.openapi.editor.ex.RangeHighlighterEx; import com.intellij.openapi.editor.impl.DocumentMarkupModel; -import com.intellij.openapi.editor.markup.HighlighterLayer; -import com.intellij.openapi.editor.markup.HighlighterTargetArea; -import com.intellij.openapi.editor.markup.MarkupModel; -import com.intellij.openapi.editor.markup.RangeHighlighter; +import com.intellij.openapi.editor.markup.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Key; @@ -106,6 +103,10 @@ class LineMarkersUtil { if (highlighter == null) { highlighter = markupModel.addRangeHighlighter(info.startOffset, info.endOffset, HighlighterLayer.ADDITIONAL_SYNTAX, null, HighlighterTargetArea.LINES_IN_RANGE); } + MarkupEditorFilter editorFilter = info.getEditorFilter(); + if (editorFilter != MarkupEditorFilter.EMPTY) { + highlighter.setEditorFilter(editorFilter); + } highlighter.putUserData(LINE_MARKER_INFO, info); LineMarkerInfo.LineMarkerGutterIconRenderer newRenderer = (LineMarkerInfo.LineMarkerGutterIconRenderer)info.createGutterRenderer(); LineMarkerInfo.LineMarkerGutterIconRenderer oldRenderer = highlighter.getGutterIconRenderer() instanceof LineMarkerInfo.LineMarkerGutterIconRenderer ? (LineMarkerInfo.LineMarkerGutterIconRenderer)highlighter.getGutterIconRenderer() : null; diff --git a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerProvider.java b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerProvider.java index 4b1cb6a32057..f471b3920924 100644 --- a/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerProvider.java +++ b/platform/lang-impl/src/com/intellij/execution/lineMarker/RunLineMarkerProvider.java @@ -25,6 +25,8 @@ import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.DefaultActionGroup; import com.intellij.openapi.actionSystem.Separator; import com.intellij.openapi.editor.markup.GutterIconRenderer; +import com.intellij.openapi.editor.markup.MarkupEditorFilter; +import com.intellij.openapi.editor.markup.MarkupEditorFilterFactory; import com.intellij.psi.PsiElement; import com.intellij.util.Function; import com.intellij.util.SmartList; @@ -130,6 +132,12 @@ public class RunLineMarkerProvider extends LineMarkerProviderDescriptor { } }; } + + @NotNull + @Override + public MarkupEditorFilter getEditorFilter() { + return MarkupEditorFilterFactory.createIsNotDiffFilter(); + } }; }