From 960a3d468a588b68ff5fc809b2c79b5996552917 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Fri, 15 May 2015 17:06:44 +0300 Subject: [PATCH] hide brace highlighting popup when corresponding editor highlighters are cleared --- .../highlighting/BraceHighlightingHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlightingHandler.java b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlightingHandler.java index 74601bf6a500..41d402f93c47 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlightingHandler.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/highlighting/BraceHighlightingHandler.java @@ -55,6 +55,7 @@ import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiUtilBase; import com.intellij.psi.util.PsiUtilCore; import com.intellij.ui.ColorUtil; +import com.intellij.ui.LightweightHint; import com.intellij.util.Alarm; import com.intellij.util.Processor; import com.intellij.util.containers.WeakHashMap; @@ -71,6 +72,7 @@ import java.util.Set; public class BraceHighlightingHandler { private static final Key> BRACE_HIGHLIGHTERS_IN_EDITOR_VIEW_KEY = Key.create("BraceHighlighter.BRACE_HIGHLIGHTERS_IN_EDITOR_VIEW_KEY"); private static final Key LINE_MARKER_IN_EDITOR_KEY = Key.create("BraceHighlighter.LINE_MARKER_IN_EDITOR_KEY"); + private static final Key HINT_IN_EDITOR_KEY = Key.create("BraceHighlighter.HINT_IN_EDITOR_KEY"); /** * Holds weak references to the editors that are being processed at non-EDT. @@ -522,7 +524,8 @@ public class BraceHighlightingHandler { int line2 = myDocument.getLineNumber(range.getEndOffset()); line1 = Math.max(line1, line2 - 5); range = new TextRange(myDocument.getLineStartOffset(line1), range.getEndOffset()); - EditorFragmentComponent.showEditorFragmentHint(myEditor, range, true, true); + LightweightHint hint = EditorFragmentComponent.showEditorFragmentHint(myEditor, range, true, true); + myEditor.putUserData(HINT_IN_EDITOR_KEY, hint); } } }, @@ -535,6 +538,12 @@ public class BraceHighlightingHandler { highlighter.dispose(); } highlighters.clear(); + + LightweightHint hint = myEditor.getUserData(HINT_IN_EDITOR_KEY); + if (hint != null) { + hint.hide(); + myEditor.putUserData(HINT_IN_EDITOR_KEY, null); + } } private void lineMarkFragment(int startLine, int endLine, @NotNull Color color) {