internal void Fold(Dictionary <Int32, FoldRegion> regions) { if (regions.Count == 0) { return; } var start = regions.Min(rv => rv.Key); var end = regions.Max(rv => rv.Value.EndLine); var lc = @ref.Send(Sci.SCI_GETLINECOUNT); for (var i = start; i < end + 2; i++) { FoldRegion reg; if (regions.TryGetValue(i, out reg)) { //System.Diagnostics.Debug.WriteLine("sl=" + i + ";el=" + reg.EndLine + ";level=" + reg.Level); ProcessRegion(ref i, 0, regions, reg); i--; } else if (i < lc) { @ref.Send(Sci.SCI_SETFOLDLEVEL, i, 0 | Sci.SC_FOLDLEVELBASE); } } }
public void Dispose() { if (Pointer != IntPtr.Zero) { while (@ref.Send(Sci.SCI_GETDOCPOINTER) == Pointer.ToInt32()) { @ref.Send(Sci.SCI_SETDOCPOINTER, Sci.NIL, Sci.NIL); } @ref.Send(Sci.SCI_RELEASEDOCUMENT, Sci.NIL, Pointer.ToInt32()); Pointer = IntPtr.Zero; } }