Browse Source

Implemented SD2-694: Keyboard shortcut to toggle breakpoints

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1288 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 19 years ago
parent
commit
7210557a1f
  1. 8
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 17
      src/Main/Base/Project/Src/Commands/DebugCommands.cs
  3. 4
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

8
AddIns/ICSharpCode.SharpDevelop.addin

@ -1401,7 +1401,7 @@ @@ -1401,7 +1401,7 @@
<Condition name="DebuggerSupports" debuggersupports = "Stepping">
<Condition name="IsProcessRunning" isprocessrunning = "False" isdebugging = "True" action = "Disable">
<MenuItem id = "BeforeSteppingSeparator" type = "Separator" />
<MenuItem id = "Step"
<MenuItem id = "Step over"
label = "${res:XML.MainMenu.DebugMenu.Step}"
icon = "Icons.16x16.Debug.StepOver"
shortcut = "F10"
@ -1418,6 +1418,12 @@ @@ -1418,6 +1418,12 @@
class = "ICSharpCode.SharpDevelop.Project.Commands.StepOutDebuggingCommand"/>
</Condition>
</Condition>
<MenuItem id = "ToggleBreakpointSeparator" type = "Separator" />
<MenuItem id = "Toggle Breakpoint"
label = "Toggle Breakpoint"
shortcut = "F7"
class = "ICSharpCode.SharpDevelop.Project.Commands.ToggleBreakpointCommand"/>
</ComplexCondition>
</MenuItem> <!-- end DEBUG menu -->

17
src/Main/Base/Project/Src/Commands/DebugCommands.cs

@ -8,6 +8,9 @@ @@ -8,6 +8,9 @@
using System;
using System.Diagnostics;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.TextEditor;
namespace ICSharpCode.SharpDevelop.Project.Commands
{
@ -87,4 +90,18 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -87,4 +90,18 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
DebuggerService.CurrentDebugger.StepOut();
}
}
public class ToggleBreakpointCommand : AbstractMenuCommand
{
public override void Run()
{
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if (window == null || !(window.ViewContent is ITextEditorControlProvider)) {
return;
}
TextEditorControl textEditor = ((ITextEditorControlProvider)window.ViewContent).TextEditorControl;
DebuggerService.ToggleBreakpointAt(textEditor.Document, textEditor.FileName, textEditor.ActiveTextAreaControl.Caret.Line);
}
}
}

4
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -208,7 +208,7 @@ namespace ICSharpCode.Core @@ -208,7 +208,7 @@ namespace ICSharpCode.Core
}
}
static void ToggleBreakpointAt(IDocument document, string fileName, int lineNumber)
public static void ToggleBreakpointAt(IDocument document, string fileName, int lineNumber)
{
foreach (Bookmark m in document.BookmarkManager.Marks) {
BreakpointBookmark breakpoint = m as BreakpointBookmark;
@ -222,6 +222,8 @@ namespace ICSharpCode.Core @@ -222,6 +222,8 @@ namespace ICSharpCode.Core
foreach (char ch in document.GetText(document.GetLineSegment(lineNumber))) {
if (!char.IsWhiteSpace(ch)) {
document.BookmarkManager.AddMark(new BreakpointBookmark(fileName, document, lineNumber));
document.RequestUpdate(new TextAreaUpdate(TextAreaUpdateType.SingleLine, lineNumber));
document.CommitUpdate();
break;
}
}

Loading…
Cancel
Save