Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.text.formatter
Interface IContentFormatterExtension

All Known Implementing Classes:
  MultiPassContentFormatter

public interface IContentFormatterExtension

Extension interface for `IContentFormatter`.

Updates the content formatter to be able to pass `IFormattingContext` context objects to `IFormattingStrategyExtension` objects operating in context based mode.

Clients using context based formatting call the method `format(IDocument, IFormattingContext)` with a properly initialized formatting context.
The formatting context must be set up according to the desired formatting mode:

- For whole document formatting set the property `FormattingContextProperties.CONTEXT_DOCUMENT`. This is equivalent to setting `FormattingContextProperties.CONTEXT_REGION` with a region spanning the whole document.
- For multiple region formatting set the property `FormattingContextProperties.CONTEXT_REGION`. Note that the content formatter automatically aligns the region to a block selected region, and if the region spans multiple partitions, it also completes eventual partitions covered only partially by the region.

Depending on the registered formatting strategies, more context information must be passed in the formatting context, like e.g. `FormattingContextProperties.CONTEXT_PREFERENCES`.

Note that in context based mode the content formatter is fully reentrant, but not thread-safe.

Since:
  3.0
See Also:
  `IFormattingContext`, `FormattingContextProperties`

Method Summary
`void` | `format(IDocument document, IFormattingContext context)` Formats the given region of the specified document.

Method Detail

### format

    public void format(IDocument document,
                       IFormattingContext context)

  Formats the given region of the specified document.

  The formatter may safely assume that it is the only subject that modifies the document at this point in time. This method is fully reentrant, but not thread-safe.

  The formatting process performed by `format(IDocument, IFormattingContext)` happens as follows:

  - In a first pass the content formatter formats the range of the document to be formatted by using the master formatting strategy. This happens regardless of the content type of the underlying partition.
  - In the second pass, the range is formatted again, this time using the registered slave formatting strategies. For each partition contained in the range to be formatted, the content formatter determines its content type and formats the partition with the correct formatting strategy.

  Parameters:
    `document` - The document to be formatted
    `context` - The formatting context to pass to the formatting strategies. This argument must not be `null`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.