From 7210557a1f92fc07e1c525fa02f4ec335b5095ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Tue, 11 Apr 2006 21:52:21 +0000 Subject: [PATCH] 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 --- AddIns/ICSharpCode.SharpDevelop.addin | 8 +++++++- .../Base/Project/Src/Commands/DebugCommands.cs | 17 +++++++++++++++++ .../Src/Services/Debugger/DebuggerService.cs | 4 +++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin index 9cc22a678d..d8acdbf404 100644 --- a/AddIns/ICSharpCode.SharpDevelop.addin +++ b/AddIns/ICSharpCode.SharpDevelop.addin @@ -1401,7 +1401,7 @@ - + + + diff --git a/src/Main/Base/Project/Src/Commands/DebugCommands.cs b/src/Main/Base/Project/Src/Commands/DebugCommands.cs index 62fa78c9de..d1ca63f637 100644 --- a/src/Main/Base/Project/Src/Commands/DebugCommands.cs +++ b/src/Main/Base/Project/Src/Commands/DebugCommands.cs @@ -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 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); + } + } } diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs index 00bd216562..6bfe854480 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs @@ -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 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; } }