/* * 10/08/2011 * * FoldType.java - Types of folds found in many programming languages. * * This library is distributed under a modified BSD license. See the included * RSyntaxTextArea.License.txt file for details. */ package org.fife.ui.rsyntaxtextarea.folding; /** * Constants representing the "type" of a folded region. Implementations of * {@link FoldParser} can also define their own folded region types, provided * they give them values of at least {@link #FOLD_TYPE_USER_DEFINED_MIN}. This * allows you to identify and auto-fold specific regions of source code when * opening files; for example, a Java editor could identify all import * statements in a file as a foldable region, and give it a user-defined value * for fold type. Then, the UI could provide a means for the user to specify * that they always want the import region folded when opening a new file.<p> * * The majority of the time, however, code editors won't need to be that fancy, * and can simply use the standard <code>CODE</code> and <code>COMMENT</code> * fold types. * * @author Robert Futrell * @version 1.0 * @see Fold */ public interface FoldType { /** * Denotes a <code>Fold</code> as being a region of code. */ public static final int CODE = 0; /** * Denotes a <code>Fold</code> as being a multi-line comment. */ public static final int COMMENT = 1; /** * Denotes a <code>Fold</code> as being a section of import statements * (Java), include statements (C), etc. */ public static final int IMPORTS = 2; /** * Users building advanced editors such as IDE's, that want to allow their * users to auto-expand/collapse foldable regions of a specific type other * than comments, should define their custom fold types using values * <code>FOLD_TYPE_USER_DEFINED_MIN + <em>n</em></code>. That way, if * new default fold types are added to this interface in the future, your * code won't suddenly break when upgrading to a new version of RSTA. */ public static final int FOLD_TYPE_USER_DEFINED_MIN = 1000; }