public static void AddBreakpoint(FilePath fileName, int lineNumber) { WabbitcodeBreakpoint newBreak = new WabbitcodeBreakpoint(fileName, lineNumber); if (BreakList.Contains(newBreak)) { return; } BreakList.Add(newBreak); if (OnBreakpointAdded == null) { return; } var eventArgs = new WabbitcodeBreakpointEventArgs(newBreak); foreach (var addedDelegage in OnBreakpointAdded.GetInvocationList()) { var handler = (BreakpointAdded)addedDelegage; if (!eventArgs.Cancel) { handler(null, eventArgs); } } if (!eventArgs.Cancel) { return; } IStatusBarService statusBarService = DependencyFactory.Resolve <IStatusBarService>(); statusBarService.SetText("A breakpoint could not be set at this location"); }
public static void RemoveBreakpoint(FilePath fileName, int lineNumber) { WabbitcodeBreakpoint newBreak = Breakpoints.FirstOrDefault(b => fileName == b.File && b.LineNumber == lineNumber); if (newBreak == null) { return; } BreakList.Remove(newBreak); if (OnBreakpointRemoved == null) { return; } var eventArgs = new WabbitcodeBreakpointEventArgs(newBreak); foreach (var removedDelegate in OnBreakpointRemoved.GetInvocationList()) { var handler = (BreakpointRemoved)removedDelegate; if (!eventArgs.Cancel) { handler(null, eventArgs); } } }
private void breakpointGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex != 0 || breakpointGridView.SelectedRows.Count == 0 || breakpointGridView.SelectedRows[0].Cells[1].Value == null) { return; } string value = breakpointGridView.SelectedRows[0].Cells[1].Value.ToString(); int splitter = value.IndexOf(':', 4); FilePath file = new FilePath(value.Substring(0, splitter)); IProject project = _projectService.Project; if (!project.IsInternal) { file = new FilePath(Path.Combine(project.ProjectDirectory, file)); } int lineNum = Convert.ToInt32(value.Substring(splitter + 1, value.Length - splitter - 1)); WabbitcodeBreakpoint breakpoint = WabbitcodeBreakpointManager.Breakpoints.FirstOrDefault( b => b.File == file && b.LineNumber == lineNum); if (breakpoint == null) { return; } breakpoint.Enabled = (bool)breakpointGridView.Rows[e.RowIndex].Cells[0].Value; }
protected override void Execute() { ITextEditor activeTextEditor = _dockingService.ActiveDocument as ITextEditor; if (activeTextEditor == null) { return; } FilePath fileName = activeTextEditor.FileName; int lineNum = activeTextEditor.CaretLine; WabbitcodeBreakpoint breakpoint = WabbitcodeBreakpointManager.Breakpoints .SingleOrDefault(b => b.File == fileName && b.LineNumber == lineNum); if (breakpoint == null) { WabbitcodeBreakpointManager.AddBreakpoint(fileName, lineNum); } else { WabbitcodeBreakpointManager.RemoveBreakpoint(fileName, lineNum); } }
public WabbitcodeBreakpointEventArgs(WabbitcodeBreakpoint breakpoint) { Breakpoint = breakpoint; }