Example #1
0
        private void InitCodeFolding()
        {
            textArea.SetFoldMarginColor(true, BpColors.Back_Folding_Color);
            textArea.SetFoldMarginHighlightColor(true, BpColors.Back_Folding_Color);
            textArea.FoldDisplayTextSetStyle(FoldDisplayText.Boxed);

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

            // Configure a margin to display folding symbols
            textArea.Margins[FOLDING_MARGIN].Type      = MarginType.Symbol;
            textArea.Margins[FOLDING_MARGIN].Mask      = 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(BpColors.Back_Folding_Color); // styles for [+] and [-]
                textArea.Markers[i].SetBackColor(BpColors.Fore_Folding_Color); // styles for [+] and [-]
            }

            // Configure folding markers with respective symbols
            textArea.Markers[Marker.Folder].Symbol        = MarkerSymbol.BoxPlus;
            textArea.Markers[Marker.FolderOpen].Symbol    = MarkerSymbol.BoxMinus;
            textArea.Markers[Marker.FolderEnd].Symbol     = MarkerSymbol.BoxPlusConnected;
            textArea.Markers[Marker.FolderMidTail].Symbol = MarkerSymbol.TCorner;
            textArea.Markers[Marker.FolderOpenMid].Symbol = MarkerSymbol.BoxMinusConnected;
            textArea.Markers[Marker.FolderSub].Symbol     = MarkerSymbol.VLine;
            textArea.Markers[Marker.FolderTail].Symbol    = MarkerSymbol.LCorner;

            // Enable automatic folding
            //textArea.AutomaticFold = (AutomaticFold.Show | AutomaticFold.Click | AutomaticFold.Change);
        }