do not show run line markers in diff editors (WEB-30734)

This commit is contained in:
Sergey Simonchik
2018-01-20 00:43:32 +03:00
parent 315b7969c1
commit ed8c5c5b22
3 changed files with 19 additions and 4 deletions
@@ -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<T extends PsiElement> {
myNavigateAction = navigateAction;
}
@NotNull
public MarkupEditorFilter getEditorFilter() {
return MarkupEditorFilter.EMPTY;
}
@Nullable
public GutterIconNavigationHandler<T> getNavigationHandler() {
return myNavigationHandler;
@@ -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;
@@ -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();
}
};
}