public abstract class CodeFormatter extends Object
Modifier and Type | Field and Description |
---|---|
static String |
EMPTY_STRING |
static int |
K_CLASS_BODY_DECLARATIONS
Kind used to format a set of class body declarations.
|
static int |
K_COMPILATION_UNIT
Deprecated.
Use #K_TRANSLATION_UNIT
|
static int |
K_EXPRESSION
Kind used to format an expression.
|
static int |
K_MULTI_LINE_COMMENT
Kind used to format a multi-line comment.
|
static int |
K_SINGLE_LINE_COMMENT
Kind used to format a single-line comment.
|
static int |
K_STATEMENTS
Kind used to format a set of statements.
|
static int |
K_TRANSLATION_UNIT
Kind used to format a translation unit.
|
static int |
K_UNKNOWN
Unknown kind.
|
Constructor and Description |
---|
CodeFormatter() |
Modifier and Type | Method and Description |
---|---|
String |
createIndentationString(int indentationLevel)
Answers the string that corresponds to the indentation to the given indentation level,
or an empty string if the indentation cannot be computed.
|
abstract org.eclipse.text.edits.TextEdit |
format(int kind,
String source,
int offset,
int length,
int indentationLevel,
String lineSeparator)
Formats
source , and returns a text edit that correspond to the difference
between the given string and the formatted string. |
org.eclipse.text.edits.TextEdit[] |
format(int kind,
String source,
org.eclipse.jface.text.IRegion[] regions,
String lineSeparator)
Formats one or more regions of
source , and returns an array of edits, one edit
per region. |
abstract void |
setOptions(Map<String,?> options) |
public static final String EMPTY_STRING
public static final int K_UNKNOWN
public static final int K_EXPRESSION
public static final int K_STATEMENTS
public static final int K_CLASS_BODY_DECLARATIONS
@Deprecated public static final int K_COMPILATION_UNIT
public static final int K_TRANSLATION_UNIT
public static final int K_SINGLE_LINE_COMMENT
public static final int K_MULTI_LINE_COMMENT
public abstract org.eclipse.text.edits.TextEdit format(int kind, String source, int offset, int length, int indentationLevel, String lineSeparator)
source
, and returns a text edit that correspond to the difference
between the given string and the formatted string. It returns null if the given string cannot
be formatted.
If the offset position is matching a whitespace, the result can include whitespaces.
It would be up to the caller to get rid of preceding whitespaces.kind
- Use to specify the kind of the code snippet to format. It can be any of these:
K_EXPRESSION, K_STATEMENTS, K_CLASS_BODY_DECLARATIONS, K_TRANSLATION_UNIT, K_UNKNOWNsource
- the document to formatoffset
- the given offset to start recording the edits (inclusive).length
- the given length to stop recording the edits (exclusive).indentationLevel
- the initial indentation level, used
to shift left/right the entire source fragment. An initial indentation
level of zero or below has no effect.lineSeparator
- the line separator to use in formatted source,
if set to null
, then the platform default one will be used.IllegalArgumentException
- if offset is lower than 0, length is lower than 0 or
length is greater than source length.public org.eclipse.text.edits.TextEdit[] format(int kind, String source, org.eclipse.jface.text.IRegion[] regions, String lineSeparator)
source
, and returns an array of edits, one edit
per region. If some of the regions cannot be formatted, the corresponding elements of
the returned array will be null
.
If the offset of a region is matching a whitespace, the result can include whitespaces.
It would be up to the caller to get rid of preceding whitespaces.
Subclasses may override this method to provide a more efficient implementation.kind
- Use to specify the kind of the code snippet to format. It can be any of these:
K_EXPRESSION, K_STATEMENTS, K_CLASS_BODY_DECLARATIONS, K_TRANSLATION_UNIT, K_UNKNOWN.source
- the document to format.regions
- regions of the source to be formatted.lineSeparator
- the line separator to use in formatted source,
if set to null
, then the platform default one will be used.IllegalArgumentException
- if any of the regions is invalid.public abstract void setOptions(Map<String,?> options)
options
- - general formatter optionspublic String createIndentationString(int indentationLevel)
This method needs to be overridden in a subclass.
The default implementation returns an empty string.
indentationLevel
- the given indentation levelIllegalArgumentException
- if the given indentation level is lower than zeroCopyright (c) IBM Corp. and others 2004, 2020. All Rights Reserved.