Пример #1
0
        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");
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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;
        }
Пример #4
0
        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;
 }