From 948ff6751d5b341e8b7fa0b258ae9f8ed9e195bc Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Fri, 25 Mar 2011 18:36:04 +0300 Subject: [PATCH] correct disabling of tag tree highlighting --- .../WebEditorAppearanceConfigurable.java | 25 ++++++++++++++++ .../HtmlTagTreeHighlightingPass.java | 29 +++++++++++++++---- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/xml/impl/src/com/intellij/application/options/editor/WebEditorAppearanceConfigurable.java b/xml/impl/src/com/intellij/application/options/editor/WebEditorAppearanceConfigurable.java index 6818b852adf0..e4823acf0781 100644 --- a/xml/impl/src/com/intellij/application/options/editor/WebEditorAppearanceConfigurable.java +++ b/xml/impl/src/com/intellij/application/options/editor/WebEditorAppearanceConfigurable.java @@ -15,8 +15,16 @@ */ package com.intellij.application.options.editor; +import com.intellij.codeInsight.daemon.impl.tagTreeHighlighting.HtmlTagTreeHighlightingPass; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.fileEditor.FileEditor; +import com.intellij.openapi.fileEditor.FileEditorManager; +import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.options.BeanConfigurable; +import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.UnnamedConfigurable; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectManager; import com.intellij.xml.XmlBundle; /** @@ -30,4 +38,21 @@ public class WebEditorAppearanceConfigurable extends BeanConfigurable getHighlights() { - removeOldLineMarkers(); + clearLineMarkers(myEditor); final int count = myPairsToHighlight.size(); final List highlightInfos = new ArrayList(count * 2); @@ -196,18 +197,18 @@ public class HtmlTagTreeHighlightingPass extends TextEditorHighlightingPass { return highlightInfos; } - private void removeOldLineMarkers() { - final List oldHighlighters = myEditor.getUserData(TAG_TREE_HIGHLIGHTERS_IN_EDITOR_KEY); + private static void clearLineMarkers(Editor editor) { + final List oldHighlighters = editor.getUserData(TAG_TREE_HIGHLIGHTERS_IN_EDITOR_KEY); if (oldHighlighters != null) { - final MarkupModelEx markupModel = (MarkupModelEx)myEditor.getMarkupModel(); + final MarkupModelEx markupModel = (MarkupModelEx)editor.getMarkupModel(); for (RangeHighlighter highlighter : oldHighlighters) { if (markupModel.containsHighlighter(highlighter)) { highlighter.dispose(); } } - myEditor.putUserData(TAG_TREE_HIGHLIGHTERS_IN_EDITOR_KEY, null); + editor.putUserData(TAG_TREE_HIGHLIGHTERS_IN_EDITOR_KEY, null); } } @@ -293,4 +294,22 @@ public class HtmlTagTreeHighlightingPass extends TextEditorHighlightingPass { return colors; } + + public static void clearHighlightingAndLineMarkers(final Editor editor, @NotNull Project project) { + final MarkupModel markupModel = editor.getDocument().getMarkupModel(project); + + for (RangeHighlighter highlighter : markupModel.getAllHighlighters()) { + Object tooltip = highlighter.getErrorStripeTooltip(); + + if (!(tooltip instanceof HighlightInfo)) { + continue; + } + + if (((HighlightInfo)tooltip).type == TYPE) { + highlighter.dispose(); + } + } + + clearLineMarkers(editor); + } }