Exemple #1
0
 private void AddBreakpoints(LineSegment line)
 {
     if (line != null)
     {
         TextMarker bm = new BreakpointTextMarker(editor, false);
         editor.Document.AddMarker(line, bm);
         editor.QueueDraw();
     }
 }
Exemple #2
0
        //public void AddBreakpoints (LineSegment ls){
        //TextMarker bm = new BreakpointTextMarker(editor, false);
        //editor.Document.AddMarker(ls, bm);
        //editor.QueueDraw();
        //}
        public void AddBreakpoints(object obj, EventArgs args)
        {
            LineSegment line = editor.Document.GetLine(editor.Caret.Line);

            if (line != null)
            {
                TextMarker bm = new BreakpointTextMarker(editor, false);
                editor.Document.AddMarker(line, bm);
                editor.QueueDraw();
            }
        }
		void AddBreakpoint (Breakpoint bp)
		{
			if (DebuggingService.PinnedWatches.IsWatcherBreakpoint (bp))
				return;
			var textEditor = widget.TextEditor;
			if (textEditor == null)
				return;
			var document = textEditor.Document;
			if (document == null)
				return;

			FilePath fp = Name;
			if (fp.FullPath == bp.FileName) {
				if (bp.Line <= 0 || bp.Line > textEditor.Document.LineCount) {
					LoggingService.LogWarning ("Invalid breakpoint :" + bp + " in line " + bp.Line);
					return;
				}
				DocumentLine line = document.GetLine (bp.Line);
				var status = bp.GetStatus (DebuggingService.DebuggerSession);
				bool tracepoint = (bp.HitAction & HitAction.Break) == HitAction.None;

				if (line == null)
					return;

				//TODO: 1. When not in debug mode use Microsoft.CodeAnalysis.CSharp.EditAndContinue.BreakpointSpans.TryGetBreakpointSpan
				//TODO: 2. When in debug mode extend Breakpoint class to have endLine and endColumn set if .mdb/.pdb has endLine/endColumn
				var offset = line.Offset;
				var lenght = line.Length;
				DebugMarkerPair marker;
				if (!bp.Enabled) {
					marker = new DisabledBreakpointTextMarker (textEditor, offset, lenght, tracepoint);
				} else if (status == BreakEventStatus.Bound || status == BreakEventStatus.Disconnected) {
					marker = new BreakpointTextMarker (textEditor, offset, lenght, tracepoint);
				} else {
					marker = new InvalidBreakpointTextMarker (textEditor, offset, lenght, tracepoint);
				}

				textEditor.QueueDraw ();
				breakpointSegments.Add (marker);
				marker.AddTo (document, line);
			}
		}