|
From: <caw...@us...> - 2007-09-10 20:33:55
|
Revision: 3126
http://rubyeclipse.svn.sourceforge.net/rubyeclipse/?rev=3126&view=rev
Author: cawilliams
Date: 2007-09-10 13:29:23 -0700 (Mon, 10 Sep 2007)
Log Message:
-----------
add ability to set breakpoints on external libraries (like Rails). Still need to show external filename for breakpoint in listing, and show icon in ruler for external ruby script editor.
Modified Paths:
--------------
trunk/org.rubypeople.rdt.debug.ui/src/org/rubypeople/rdt/internal/debug/ui/actions/ManageBreakpointRulerAction.java
Modified: trunk/org.rubypeople.rdt.debug.ui/src/org/rubypeople/rdt/internal/debug/ui/actions/ManageBreakpointRulerAction.java
===================================================================
--- trunk/org.rubypeople.rdt.debug.ui/src/org/rubypeople/rdt/internal/debug/ui/actions/ManageBreakpointRulerAction.java 2007-09-10 20:29:19 UTC (rev 3125)
+++ trunk/org.rubypeople.rdt.debug.ui/src/org/rubypeople/rdt/internal/debug/ui/actions/ManageBreakpointRulerAction.java 2007-09-10 20:29:23 UTC (rev 3126)
@@ -12,6 +12,7 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.IBreakpointManager;
@@ -29,6 +30,7 @@
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.IUpdate;
import org.rubypeople.rdt.debug.core.RubyLineBreakpoint;
+import org.rubypeople.rdt.internal.ui.rubyeditor.IRubyScriptEditorInput;
/**
*
@@ -87,8 +89,9 @@
if (model == null) { return breakpoints; }
try {
IResource resource = getResource();
+ if (resource == null) resource = ResourcesPlugin.getWorkspace().getRoot();
if (resource == null) return breakpoints;
- IMarker[] markers = resource.findMarkers("org.rubypeople.rdt.debug.core.RubyBreakpointMarker", // IBreakpoint.BREAKPOINT_MARKER,
+ IMarker[] markers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER,
false, IResource.DEPTH_INFINITE);
IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
@@ -185,12 +188,29 @@
getDocument();
int rulerLine = getVerticalRulerInfo().getLineOfLastMouseButtonActivity();
try {
- RubyLineBreakpoint bp = new RubyLineBreakpoint(((IFileEditorInput) editorInput).getFile(), rulerLine);
+ IResource resource = getResource(editorInput);
+ if (resource.equals(ResourcesPlugin.getWorkspace().getRoot())) {
+ RubyLineBreakpoint bp = new RubyLineBreakpoint(resource, rulerLine, getFileName(editorInput));
+ } else {
+ RubyLineBreakpoint bp = new RubyLineBreakpoint(resource, rulerLine);
+ }
} catch (CoreException x) {
System.out.println(x.getMessage());
}
}
+ private String getFileName(IEditorInput editorInput) {
+ if (editorInput instanceof IRubyScriptEditorInput)
+ return ((IRubyScriptEditorInput) editorInput).getRubyScript().getPath().makeAbsolute().toOSString();
+ return null;
+ }
+
+ private IResource getResource(IEditorInput editorInput) {
+ if (editorInput instanceof IFileEditorInput)
+ return ((IFileEditorInput) editorInput).getFile();
+ return ResourcesPlugin.getWorkspace().getRoot();
+ }
+
protected void removeMarkers(List markers) {
Iterator breakpointIt = fMarkers.iterator();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|