= Issue 1747300 == Short Description Enable customization of folding presentation == Long Description It will be very nice if the way folding is drawn in the gutter is customizable. One customization can be made by the user, e.g. selecting the icons to show for start/end of fold, another could be by enabling a folding-mode provider (fold handler, like SideKick) select the icons for each fold. == Feature Description % BASE jEdit has a text folding feature for source code and structured text using indentation. The feature enables users to show and hide each section of text selectively. The feature is disabled by default. Users can specify one of the following options in either the General Options dialog (that affects all text buffers) or the Buffers Option dialog (that affects a single text buffer). * explicit: jEdit recognizes lines between "{{{" and "}}}" in the text as a section. * implicit: jEdit recognizes indentation structure as sections. * none: The folding feature is disabled. The figure is a screenshot of a text buffer including the Java source code. Import statements from line 24 through line 68 are specified explicitly as a section. Clicking on a triangle icon shown on the left expands the folded text in the text buffer. ![An example of folded text](task1-1747300.png) % CORE The new feature enables users to choose icons to designate the start and end of fold. Users can select circle and rectangle icons in addition to a triangle (default). % TASK Please locate all methods added or modified for the new feature. ``Method'' does NOT include class declaration, abstract methods without method body, and static initializers of classes. == Gold Set org.gjt.sp.jedit.EditPane.propertiesChanged() org.gjt.sp.jedit.options.GutterOptionPane._init() org.gjt.sp.jedit.options.GutterOptionPane._save() org.gjt.sp.jedit.options.GutterOptionPane.addFoldStyleChooser() org.gjt.sp.jedit.textarea.CircleFoldPainter.paintFoldShape(Graphics2D,int,int) org.gjt.sp.jedit.textarea.Gutter.Gutter(TextArea) org.gjt.sp.jedit.textarea.Gutter.paintLine(Graphics2D,int,int) org.gjt.sp.jedit.textarea.Gutter.setFoldPainter(FoldPainter) org.gjt.sp.jedit.textarea.JEditTextArea.getFoldPainter() org.gjt.sp.jedit.textarea.ShapedFoldPainter.paintFoldEnd(Gutter,Graphics2D,int,int,int,int,JEditBuffer) org.gjt.sp.jedit.textarea.ShapedFoldPainter.paintFoldMiddle(Gutter,Graphics2D,int,int,int,int,JEditBuffer) org.gjt.sp.jedit.textarea.ShapedFoldPainter.paintFoldStart(Gutter,Graphics2D,int,int,boolean,int,int,JEditBuffer) org.gjt.sp.jedit.textarea.SquareFoldPainter.paintFoldShape(Graphics2D,int,int)