ability to disable debugger value lookup

This commit is contained in:
Vladimir Krivosheev
2014-04-01 13:34:57 +02:00
parent 6e7f8ffd3f
commit d640d905a7
3 changed files with 19 additions and 1 deletions
@@ -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<PsiElement> 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);
}
@@ -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);
}
}
@@ -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<Boolean> 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;
}