From 74000ec05fec3d05b9042e39f7f5360e610230ae Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Fri, 23 Oct 2009 21:03:19 +0400 Subject: [PATCH] added project scope filter for line breakpoints (IDEADEV-40988) --- .../ui/breakpoints/LineBreakpoint.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/LineBreakpoint.java b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/LineBreakpoint.java index 1f228a4502f2..89d5077afcbc 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/LineBreakpoint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/LineBreakpoint.java @@ -40,6 +40,7 @@ import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.jsp.JspFile; +import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.ui.classFilter.ClassFilter; import com.intellij.util.Processor; @@ -104,7 +105,16 @@ public class LineBreakpoint extends BreakpointWithHighlighter { myMethodName = LineBreakpoint.findMethodName(file, getHighlighter().getStartOffset()); } + protected void createOrWaitPrepare(DebugProcessImpl debugProcess, String classToBeLoaded) { + if (isInScopeOf(debugProcess)) { + super.createOrWaitPrepare(debugProcess, classToBeLoaded); + } + } + protected void createRequestForPreparedClass(final DebugProcessImpl debugProcess, final ReferenceType classType) { + if (!isInScopeOf(debugProcess)) { + return; + } ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { try { @@ -160,6 +170,15 @@ public class LineBreakpoint extends BreakpointWithHighlighter { }); } + private boolean isInScopeOf(DebugProcessImpl debugProcess) { + final SourcePosition position = getSourcePosition(); + if (position != null) { + final GlobalSearchScope scope = debugProcess.getSearchScope(); + return scope.accept(position.getFile().getVirtualFile()); + } + return true; + } + public boolean evaluateCondition(EvaluationContextImpl context, LocatableEvent event) throws EvaluateException { if(CLASS_FILTERS_ENABLED){ Value value = context.getThisObject();