コード例 #1
0
ファイル: FoldingManager.cs プロジェクト: ngoffee/ela
        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);
                }
            }
        }
コード例 #2
0
ファイル: SciDocument.cs プロジェクト: ngoffee/ela
        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;
            }
        }