Community
Participate
Working Groups
The line breakpoint dialog should allow user to edit breakpoint file in the same way that it lets user edit the line number. Browse buttons should be available to select from workspace or file system. To implement this feature, the property dialog will need to be able to remove the existing breakpoint and replace it with a new one. Also, the properties dialog should be able to create a new line breakpoint and set all of its properties other at the same time.
Design notes: This is mostly covered in bug 360588. One additional thing to note here, is that the path of the breakpoint resource will need to be tracked as one of its properties. The preference page will first need to save the requested resource to the preference store, then upon okPressed() the preference store will create the breakpoint marker based on this preference value. To modify the file of an existing breakpoint, the preference page will still just modify the preference, but the preference store will first need to delete the old breakpoint prior to creating a new one.
Additional note: Breakpoint extensions (via ICBreakpointExtension) will need to be moved from the old breakpoint to the new one. If a given breakpoint extension stores all its data inside the extension object (as CBreakpointFilterExtension and CBreakpointGdbThreadsFilterExtension currently do), then simply adding the extension from the old breakpoint to the new breakpoint should be sufficient. However, for extensions that do store data in the breakpoint marker we may need to invent a new API (or just reuse ICBreakpointExtension.initialize()) to notify the extension that it should re-initialize itself from the new marker.
Bug 464917 (and other previous enhancements) has paved the way for this enhancement. The file is now editable when using the new "Add line breakpoint (C/C++)..." action of the breakpoint view menu. It could also be enabled when modifying a breakpoint or when creating one through a ctrl-double-click on the editor margin. What would need to be done is to make sure that a bp can be moved to another file in the backend and that a marker location is properly updated when doing such a change.