Exemple #1
0
        private void InitCodeFolding()
        {
            TextArea.SetFoldMarginColor(true, IntToColor(BACK_COLOR));
            TextArea.SetFoldMarginHighlightColor(true, IntToColor(BACK_COLOR));

            // Enable code folding
            TextArea.SetProperty("fold", "1");
            TextArea.SetProperty("fold.compact", "1");

            // Configure a margin to display folding symbols
            TextArea.Margins[FOLDING_MARGIN].Type      = ScintillaNET.MarginType.Symbol;
            TextArea.Margins[FOLDING_MARGIN].Mask      = ScintillaNET.Marker.MaskFolders;
            TextArea.Margins[FOLDING_MARGIN].Sensitive = true;
            TextArea.Margins[FOLDING_MARGIN].Width     = 20;

            // Set colors for all folding markers
            for (int i = 25; i <= 31; i++)
            {
                TextArea.Markers[i].SetForeColor(IntToColor(BACK_COLOR)); // styles for [+] and [-]
                TextArea.Markers[i].SetBackColor(IntToColor(FORE_COLOR)); // styles for [+] and [-]
            }

            // Configure folding markers with respective symbols
            TextArea.Markers[ScintillaNET.Marker.Folder].Symbol        = CODEFOLDING_CIRCULAR ? ScintillaNET.MarkerSymbol.CirclePlus : ScintillaNET.MarkerSymbol.BoxPlus;
            TextArea.Markers[ScintillaNET.Marker.FolderOpen].Symbol    = CODEFOLDING_CIRCULAR ? ScintillaNET.MarkerSymbol.CircleMinus : ScintillaNET.MarkerSymbol.BoxMinus;
            TextArea.Markers[ScintillaNET.Marker.FolderEnd].Symbol     = CODEFOLDING_CIRCULAR ? ScintillaNET.MarkerSymbol.CirclePlusConnected : ScintillaNET.MarkerSymbol.BoxPlusConnected;
            TextArea.Markers[ScintillaNET.Marker.FolderMidTail].Symbol = ScintillaNET.MarkerSymbol.TCorner;
            TextArea.Markers[ScintillaNET.Marker.FolderOpenMid].Symbol = CODEFOLDING_CIRCULAR ? ScintillaNET.MarkerSymbol.CircleMinusConnected : ScintillaNET.MarkerSymbol.BoxMinusConnected;
            TextArea.Markers[ScintillaNET.Marker.FolderSub].Symbol     = ScintillaNET.MarkerSymbol.VLine;
            TextArea.Markers[ScintillaNET.Marker.FolderTail].Symbol    = ScintillaNET.MarkerSymbol.LCorner;

            // Enable automatic folding
            TextArea.AutomaticFold = (ScintillaNET.AutomaticFold.Show | ScintillaNET.AutomaticFold.Click | ScintillaNET.AutomaticFold.Change);
        }
Exemple #2
0
        private void setStyle(ScintillaNET.Scintilla scintilla)
        {
            // Reset the styles
            scintilla.StyleResetDefault();
            scintilla.Styles[ScintillaNET.Style.Default].Font = "Consolas";
            scintilla.Styles[ScintillaNET.Style.Default].Size = 10;
            scintilla.StyleClearAll();

            // Show line numbers
            scintilla.Margins[0].Width = 20;

            // Enable folding
            scintilla.SetProperty("fold", "1");
            scintilla.SetProperty("fold.compact", "1");
            scintilla.SetProperty("fold.html", "1");

            // Use Margin 2 for fold markers
            scintilla.Margins[2].Type      = ScintillaNET.MarginType.Symbol;
            scintilla.Margins[2].Mask      = ScintillaNET.Marker.MaskFolders;
            scintilla.Margins[2].Sensitive = true;
            scintilla.Margins[2].Width     = 20;

            // Reset folder markers
            for (int i = ScintillaNET.Marker.FolderEnd; i <= ScintillaNET.Marker.FolderOpen; i++)
            {
                scintilla.Markers[i].SetForeColor(SystemColors.ControlLightLight);
                scintilla.Markers[i].SetBackColor(SystemColors.ControlDark);
            }

            // Style the folder markers
            scintilla.Markers[ScintillaNET.Marker.Folder].Symbol = ScintillaNET.MarkerSymbol.BoxPlus;
            scintilla.Markers[ScintillaNET.Marker.Folder].SetBackColor(SystemColors.ControlText);
            scintilla.Markers[ScintillaNET.Marker.FolderOpen].Symbol = ScintillaNET.MarkerSymbol.BoxMinus;
            scintilla.Markers[ScintillaNET.Marker.FolderEnd].Symbol  = ScintillaNET.MarkerSymbol.BoxPlusConnected;
            scintilla.Markers[ScintillaNET.Marker.FolderEnd].SetBackColor(SystemColors.ControlText);
            scintilla.Markers[ScintillaNET.Marker.FolderMidTail].Symbol = ScintillaNET.MarkerSymbol.TCorner;
            scintilla.Markers[ScintillaNET.Marker.FolderOpenMid].Symbol = ScintillaNET.MarkerSymbol.BoxMinusConnected;
            scintilla.Markers[ScintillaNET.Marker.FolderSub].Symbol     = ScintillaNET.MarkerSymbol.VLine;
            scintilla.Markers[ScintillaNET.Marker.FolderTail].Symbol    = ScintillaNET.MarkerSymbol.LCorner;

            // Enable automatic folding
            scintilla.AutomaticFold = ScintillaNET.AutomaticFold.Show | ScintillaNET.AutomaticFold.Click | ScintillaNET.AutomaticFold.Change;

            // Set the Styles
            scintilla.StyleResetDefault();
            // I like fixed font for XML
            scintilla.Styles[ScintillaNET.Style.Default].Font = "Courier";
            scintilla.Styles[ScintillaNET.Style.Default].Size = 10;
            scintilla.StyleClearAll();
            scintilla.Styles[ScintillaNET.Style.Xml.Attribute].ForeColor    = Color.Red;
            scintilla.Styles[ScintillaNET.Style.Xml.Entity].ForeColor       = Color.Red;
            scintilla.Styles[ScintillaNET.Style.Xml.Comment].ForeColor      = Color.Green;
            scintilla.Styles[ScintillaNET.Style.Xml.Tag].ForeColor          = Color.Blue;
            scintilla.Styles[ScintillaNET.Style.Xml.TagEnd].ForeColor       = Color.Blue;
            scintilla.Styles[ScintillaNET.Style.Xml.DoubleString].ForeColor = Color.DeepPink;
            scintilla.Styles[ScintillaNET.Style.Xml.SingleString].ForeColor = Color.DeepPink;
        }