diff --git a/platform/xdebugger-api/src/com/intellij/xdebugger/XDebuggerUtil.java b/platform/xdebugger-api/src/com/intellij/xdebugger/XDebuggerUtil.java index e33bcaf75b10..92dad57901ad 100644 --- a/platform/xdebugger-api/src/com/intellij/xdebugger/XDebuggerUtil.java +++ b/platform/xdebugger-api/src/com/intellij/xdebugger/XDebuggerUtil.java @@ -19,6 +19,7 @@ package com.intellij.xdebugger; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiElement; @@ -109,6 +110,11 @@ public abstract class XDebuggerUtil { */ public abstract void iterateLine(@NotNull Project project, @NotNull Document document, int line, @NotNull Processor processor); + /** + * Disable value lookup in specified editor + */ + public abstract void disableValueLookup(@NotNull Editor editor); + @Nullable public abstract PsiElement findContextElement(@NotNull VirtualFile virtualFile, int offset, @NotNull Project project, boolean checkXml); } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java index 9cbd615e8f05..4df342daa006 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebuggerUtilImpl.java @@ -43,6 +43,7 @@ import com.intellij.xdebugger.frame.XSuspendContext; import com.intellij.xdebugger.frame.XValueContainer; import com.intellij.xdebugger.impl.breakpoints.XBreakpointUtil; import com.intellij.xdebugger.impl.breakpoints.ui.grouping.XBreakpointFileGroupingRule; +import com.intellij.xdebugger.impl.evaluate.quick.common.ValueLookupManager; import com.intellij.xdebugger.impl.settings.XDebuggerSettingsManager; import com.intellij.xdebugger.impl.ui.tree.actions.XDebuggerTreeActionBase; import com.intellij.xdebugger.settings.XDebuggerSettings; @@ -338,4 +339,9 @@ public class XDebuggerUtilImpl extends XDebuggerUtil { } return result; } + + @Override + public void disableValueLookup(@NotNull Editor editor) { + ValueLookupManager.DISABLE_VALUE_LOOKUP.set(editor, Boolean.TRUE); + } } diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/ValueLookupManager.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/ValueLookupManager.java index 13facc097e93..19861b7fad8e 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/ValueLookupManager.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/evaluate/quick/common/ValueLookupManager.java @@ -27,6 +27,7 @@ import com.intellij.openapi.editor.event.EditorMouseEvent; import com.intellij.openapi.editor.event.EditorMouseEventArea; import com.intellij.openapi.editor.event.EditorMouseMotionListener; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Key; import com.intellij.util.Alarm; import com.intellij.xdebugger.impl.DebuggerSupport; import org.jetbrains.annotations.NotNull; @@ -34,6 +35,11 @@ import org.jetbrains.annotations.NotNull; import java.awt.*; public class ValueLookupManager implements EditorMouseMotionListener { + /** + * @see com.intellij.xdebugger.XDebuggerUtil#disableValueLookup(com.intellij.openapi.editor.Editor) + */ + public static final Key DISABLE_VALUE_LOOKUP = Key.create("DISABLE_VALUE_LOOKUP"); + private final Project myProject; private final Alarm myAlarm; private AbstractValueHint myRequest = null; @@ -68,7 +74,7 @@ public class ValueLookupManager implements EditorMouseMotionListener { return; } - if (e.getArea() != EditorMouseEventArea.EDITING_AREA) { + if (e.getArea() != EditorMouseEventArea.EDITING_AREA || DISABLE_VALUE_LOOKUP.get(editor) == Boolean.TRUE) { return; }