org.eclipse.jdt.internal.formatter
Class DefaultCodeFormatter

java.lang.Object
  extended by org.eclipse.jdt.core.formatter.CodeFormatter
      extended by org.eclipse.jdt.internal.formatter.DefaultCodeFormatter

public class DefaultCodeFormatter
extends CodeFormatter


Field Summary
static boolean DEBUG
          Debug trace
static boolean ENABLE_NEW_COMMENTS_FORMAT
           
 
Fields inherited from class org.eclipse.jdt.core.formatter.CodeFormatter
F_INCLUDE_COMMENTS, K_CLASS_BODY_DECLARATIONS, K_COMPILATION_UNIT, K_EXPRESSION, K_JAVA_DOC, K_MULTI_LINE_COMMENT, K_SINGLE_LINE_COMMENT, K_STATEMENTS, K_UNKNOWN
 
Constructor Summary
DefaultCodeFormatter()
           
DefaultCodeFormatter(DefaultCodeFormatterOptions preferences)
           
DefaultCodeFormatter(DefaultCodeFormatterOptions defaultCodeFormatterOptions, java.util.Map options)
           
DefaultCodeFormatter(java.util.Map options)
           
 
Method Summary
 java.lang.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.
static CommentRegion createRegion(int kind, org.eclipse.jface.text.IDocument document, org.eclipse.jface.text.Position range, CodeFormatterVisitor formatter)
          Creates a comment region for a specific document partition type.
 org.eclipse.text.edits.TextEdit format(int kind, java.lang.String source, int offset, int length, int indentationLevel, java.lang.String lineSeparator)
          Format 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, java.lang.String source, org.eclipse.jface.text.IRegion[] regions, int indentationLevel, java.lang.String lineSeparator)
          Format source, and returns a text edit that correspond to the difference between the given string and the formatted string.
 java.lang.String getDebugOutput()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static boolean DEBUG
Debug trace


ENABLE_NEW_COMMENTS_FORMAT

public static boolean ENABLE_NEW_COMMENTS_FORMAT
Constructor Detail

DefaultCodeFormatter

public DefaultCodeFormatter()

DefaultCodeFormatter

public DefaultCodeFormatter(DefaultCodeFormatterOptions preferences)

DefaultCodeFormatter

public DefaultCodeFormatter(DefaultCodeFormatterOptions defaultCodeFormatterOptions,
                            java.util.Map options)

DefaultCodeFormatter

public DefaultCodeFormatter(java.util.Map options)
Method Detail

createRegion

public static CommentRegion createRegion(int kind,
                                         org.eclipse.jface.text.IDocument document,
                                         org.eclipse.jface.text.Position range,
                                         CodeFormatterVisitor formatter)
Creates a comment region for a specific document partition type.

Parameters:
kind - the comment snippet kind
document - the document which contains the comment region
range - range of the comment region in the document
Returns:
a new comment region for the comment region range in the document
Since:
3.1

createIndentationString

public java.lang.String createIndentationString(int indentationLevel)
Description copied from class: CodeFormatter
Answers the string that corresponds to the indentation to the given indentation level or an empty string if the indentation cannot be computed.

This method needs to be overridden in a subclass.

The default implementation returns an empty string.

Overrides:
createIndentationString in class CodeFormatter
Parameters:
indentationLevel - the given indentation level
Returns:
the string corresponding to the right indentation level

format

public org.eclipse.text.edits.TextEdit format(int kind,
                                              java.lang.String source,
                                              int offset,
                                              int length,
                                              int indentationLevel,
                                              java.lang.String lineSeparator)
Description copied from class: CodeFormatter
Format 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.

Specified by:
format in class CodeFormatter
Parameters:
kind - Use to specify the kind of the code snippet to format. It can be any of these:
source - the source to format
offset - 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.
Returns:
the text edit
See Also:
CodeFormatter.format(int, java.lang.String, int, int, int, java.lang.String)

format

public org.eclipse.text.edits.TextEdit format(int kind,
                                              java.lang.String source,
                                              org.eclipse.jface.text.IRegion[] regions,
                                              int indentationLevel,
                                              java.lang.String lineSeparator)
Format 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 an offset position is matching a whitespace, the result can include whitespaces. It would be up to the caller to get rid of preceding whitespaces.

No region in regions must overlap with any other region in regions. Each region must be within source. There must be at least one region. Regions must be sorted by their offsets, smaller offset first.

Specified by:
format in class CodeFormatter
Parameters:
kind - Use to specify the kind of the code snippet to format. It can be any of these:
source - the source to format
regions - a set of regions in source to format
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.
Returns:
the text edit

getDebugOutput

public java.lang.String getDebugOutput()