void ToggleBreakpoint(ScintillaNET.Scintilla sc, int position) { var line = sc.Lines.FromPosition(position); while (line != null && line.StartPosition >= 0) { var trimmed = line.Text.Trim(); int colon = trimmed.IndexOf(":"); if (colon >= 0) { string start = trimmed.Substring(0, colon); int lineNum = -1; if (int.TryParse(start, out lineNum)) { if (line.GetMarkers().Contains(sc.Markers[BREAKPOINT_MARKER])) { line.DeleteMarkerSet(BreakpointMarkers); m_Breakpoints.Remove(lineNum); } else { line.AddMarkerSet(BreakpointMarkers); m_Breakpoints.Add(lineNum); } sc.Invalidate(); return; } } line = line.Next; } }