org.gjt.sp.jedit.buffer

## Class FoldHandler

- java.lang.Object
- - org.gjt.sp.jedit.buffer.FoldHandler

- Direct Known Subclasses:
    DummyFoldHandler, ExplicitFoldHandler, IndentFoldHandler

      public abstract class FoldHandler
      extends java.lang.Object

  Interface for obtaining the fold level of a specified line.

  Plugins can provide fold handlers by defining entries in their `services.xml` files like so:

      <SERVICE CLASS="org.gjt.sp.jedit.buffer.FoldHandler" NAME="name">
          new MyFoldHandler();
      </SERVICE>

  See `ServiceManager` for details.
  Since:
    jEdit 4.3pre3

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FoldHandlerProvider` | `foldHandlerProvider` The FoldHandlerProvider.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `FoldHandler(java.lang.String name)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object o)` Returns if the specified fold handler is equal to this one.
    `static FoldHandler` | `getFoldHandler(java.lang.String name)` Returns the fold handler with the specified name, or null if there is no registered handler with that name.
    `abstract int` | `getFoldLevel(JEditBuffer buffer, int lineIndex, javax.swing.text.Segment seg)` Returns the fold level of the specified line.
    `static java.lang.String[]` | `getFoldModes()` Returns an array containing the names of all registered fold handlers.
    `java.lang.String` | `getName()` Returns the internal name of this FoldHandler
    `java.util.List<java.lang.Integer>` | `getPrecedingFoldLevels(JEditBuffer buffer, int lineIndex, javax.swing.text.Segment seg, int lineFoldLevel)` Returns the fold levels of the lines preceding the specified line, which depend on the specified line.
    `int` | `hashCode()`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### foldHandlerProvider

          public static FoldHandlerProvider foldHandlerProvider

      The FoldHandlerProvider.

  - ### Constructor Detail

    - #### FoldHandler

          protected FoldHandler(java.lang.String name)

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Returns the internal name of this FoldHandler
      Returns:
        The internal name of this FoldHandler
      Since:
        jEdit 4.0pre6

    - #### getFoldLevel

          public abstract int getFoldLevel(JEditBuffer buffer,
                         int lineIndex,
                         javax.swing.text.Segment seg)

      Returns the fold level of the specified line.
      Parameters:
        `buffer` - The buffer in question
        `lineIndex` - The line index
        `seg` - A segment the fold handler can use to obtain any text from the buffer, if necessary
      Returns:
        The fold level of the specified line
      Since:
        jEdit 4.0pre1

    - #### getPrecedingFoldLevels

          public java.util.List<java.lang.Integer> getPrecedingFoldLevels(JEditBuffer buffer,
                                                                 int lineIndex,
                                                                 javax.swing.text.Segment seg,
                                                                 int lineFoldLevel)

      Returns the fold levels of the lines preceding the specified line, which depend on the specified line.
      Parameters:
        `buffer` - The buffer in question
        `lineIndex` - The line index
        `seg` - A segment the fold handler can use to obtain any
        `lineFoldLevel` - The fold level of the specified line
      Returns:
        The fold levels of the preceding lines, in decreasing line number order (i.e. bottomost line first).
      Since:
        jEdit 4.3pre18

    - #### equals

          public boolean equals(java.lang.Object o)

      Returns if the specified fold handler is equal to this one.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - The object

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### getFoldHandler

          public static FoldHandler getFoldHandler(java.lang.String name)

      Returns the fold handler with the specified name, or null if there is no registered handler with that name.
      Parameters:
        `name` - The name of the desired fold handler
      Since:
        jEdit 4.0pre6

    - #### getFoldModes

          public static java.lang.String[] getFoldModes()

      Returns an array containing the names of all registered fold handlers.
      Since:
        jEdit 4.0pre6

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`