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); }
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; }