/// <summary> /// Moves the cursor to the next marker /// </summary> public static void NextMarker(ScintillaControl sci, Int32 marker, Int32 line) { Int32 next = 0; Int32 lineMask = sci.MarkerGet(line); if ((lineMask & GetMarkerMask(marker)) != 0) { next = sci.MarkerNext(line + 1, GetMarkerMask(marker)); if (next != -1) sci.GotoLine(next); else { next = sci.MarkerNext(0, GetMarkerMask(marker)); if (next != -1) sci.GotoLine(next); } } else { next = sci.MarkerNext(line, GetMarkerMask(marker)); if (next != -1) sci.GotoLine(next); else { next = sci.MarkerNext(0, GetMarkerMask(marker)); if (next != -1) sci.GotoLine(next); } } }
/// <summary> /// Moves the cursor to the next marker /// </summary> public static void NextMarker(ScintillaControl sci, Int32 marker, Int32 line) { Int32 next = 0; Int32 lineMask = sci.MarkerGet(line); if ((lineMask & GetMarkerMask(marker)) != 0) { next = sci.MarkerNext(line + 1, GetMarkerMask(marker)); if (next != -1) { sci.EnsureVisibleEnforcePolicy(next); sci.GotoLineIndent(next); } else { next = sci.MarkerNext(0, GetMarkerMask(marker)); if (next != -1) { sci.EnsureVisibleEnforcePolicy(next); sci.GotoLineIndent(next); } } } else { next = sci.MarkerNext(line, GetMarkerMask(marker)); if (next != -1) { sci.EnsureVisibleEnforcePolicy(next); sci.GotoLineIndent(next); } else { next = sci.MarkerNext(0, GetMarkerMask(marker)); if (next != -1) { sci.EnsureVisibleEnforcePolicy(next); sci.GotoLineIndent(next); } } } }
/// <summary> /// Gets the state object from a scintilla control /// </summary> private static StateObject GetStateObject(ScintillaControl sci) { StateObject so = new StateObject(); so.LineCount = sci.LineCount; so.Position = sci.CurrentPos; so.FileName = sci.FileName; so.LineScroll = sci.FirstVisibleLine; for (Int32 line = 0;; line++) { Int32 lineNext = sci.ContractedFoldNext(line); if ((line < 0) || (lineNext < line)) break; line = lineNext; so.FoldedLines.Add(line); } Int32 lineBookmark = -1; while ((lineBookmark = sci.MarkerNext(lineBookmark + 1, 1 << 0)) >= 0) { so.BookmarkedLines.Add(lineBookmark); } return so; }
public List<Int32> GetMarkers(ScintillaControl sci, int markerNum) { Int32 line = 0; List<Int32> markerLines = new List<Int32>(); while (true) { if ((sci.MarkerNext(line, GetMarkerMask(markerNum)) == -1) || (line > sci.LineCount)) break; line = sci.MarkerNext(line, GetMarkerMask(markerNum)); markerLines.Add(line); line++; } return markerLines; }
/// <summary> /// Return all the bookmark markers from a scintilla document /// </summary> private List<Int32> GetMarkers(ScintillaControl sci) { Int32 line = -1; List<Int32> markerLines = new List<Int32>(); while (line < sci.LineCount) { line = sci.MarkerNext(line + 1, 1); if (line < 0) break; markerLines.Add(line); } return markerLines; }