Package org.eclipse.jface.text.source

# Class SourceViewerConfiguration

java.lang.Object
org.eclipse.jface.text.source.SourceViewerConfiguration

Direct Known Subclasses:
  `TextSourceViewerConfiguration`

public class SourceViewerConfiguration extends Object
This class bundles the configuration space of a source viewer. Instances of this class are passed to the `configure` method of `ISourceViewer`.

Each method in this class get as argument the source viewer for which it should provide a particular configuration setting such as a presentation reconciler. Based on its specific knowledge about the returned object, the configuration might share such objects or compute them according to some rules.

Clients should subclass and override just those methods which must be specific to their needs.

See Also:
  - `ISourceViewer`

## Constructor Summary

Constructors
Constructor
Description
`SourceViewerConfiguration()`
Creates a new source viewer configuration that behaves according to specification of this class' methods.

## Method Summary

Modifier and Type
Method
Description
`IAnnotationHover`
`getAnnotationHover(ISourceViewer sourceViewer)`
Returns the annotation hover which will provide the information to be shown in a hover popup window when requested for the given source viewer.
`IAutoEditStrategy[]`
`getAutoEditStrategies(ISourceViewer sourceViewer, String contentType)`
Returns the auto edit strategies ready to be used with the given source viewer when manipulating text of the given content type.
`IAutoIndentStrategy`
`getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType)`
Deprecated.
since 3.1 use `getAutoEditStrategies(ISourceViewer, String)` instead
`ICodeMiningProvider[]`
`getCodeMiningProviders(ISourceViewer sourceViewer)`
Returns the code mining providers which be used to draw code minings in the given source viewer.
`String[]`
`getConfiguredContentTypes(ISourceViewer sourceViewer)`
Returns all configured content types for the given source viewer.
`String`
`getConfiguredDocumentPartitioning(ISourceViewer sourceViewer)`
Returns the configured partitioning for the given source viewer.
`int[]`
`getConfiguredTextHoverStateMasks(ISourceViewer sourceViewer, String contentType)`
Returns the SWT event state masks for which text hover are configured for the given content type.
`IContentAssistant`
`getContentAssistant(ISourceViewer sourceViewer)`
Returns the content assistant ready to be used with the given source viewer.
`IContentFormatter`
`getContentFormatter(ISourceViewer sourceViewer)`
Returns the content formatter ready to be used with the given source viewer.
`String[]`
`getDefaultPrefixes(ISourceViewer sourceViewer, String contentType)`
Returns the default prefixes to be used by the line-prefix operation in the given source viewer for text of the given content type.
`ITextDoubleClickStrategy`
`getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType)`
Returns the double-click strategy ready to be used in this viewer when double clicking onto text of the given content type.
`IHyperlinkDetector[]`
`getHyperlinkDetectors(ISourceViewer sourceViewer)`
Returns the hyperlink detectors which be used to detect hyperlinks in the given source viewer.
`IHyperlinkPresenter`
`getHyperlinkPresenter(ISourceViewer sourceViewer)`
Returns the hyperlink presenter for the given source viewer.
`int`
`getHyperlinkStateMask(ISourceViewer sourceViewer)`
Returns the SWT event state mask which in combination with the left mouse button activates hyperlinking.
`String[]`
`getIndentPrefixes(ISourceViewer sourceViewer, String contentType)`
Returns the prefixes to be used by the line-shift operation.
`protected String[]`
`getIndentPrefixesForTab(int tabWidth)`
Computes and returns the indent prefixes for tab indentation which is represented as `tabSizeInSpaces`.
`IInformationControlCreator`
`getInformationControlCreator(ISourceViewer sourceViewer)`
Returns the information control creator.
`IInformationPresenter`
`getInformationPresenter(ISourceViewer sourceViewer)`
Returns the information presenter which will determine and shown information requested for the current cursor position.
`int`
`getLineSpacing(ISourceViewer sourceViewer)`
Returns the line space for the given source viewer.
`IAnnotationHover`
`getOverviewRulerAnnotationHover(ISourceViewer sourceViewer)`
Returns the annotation hover which will provide the information to be shown in a hover popup window when requested for the overview ruler of the given source viewer.This implementation always returns the general annotation hover returned by `getAnnotationHover`.
`IPresentationReconciler`
`getPresentationReconciler(ISourceViewer sourceViewer)`
Returns the presentation reconciler ready to be used with the given source viewer.
`IQuickAssistAssistant`
`getQuickAssistAssistant(ISourceViewer sourceViewer)`
Returns the quick assist assistant ready to be used with the given source viewer.
`IReconciler`
`getReconciler(ISourceViewer sourceViewer)`
Returns the reconciler ready to be used with the given source viewer.
`int`
`getTabWidth(ISourceViewer sourceViewer)`
Returns the visual width of the tab character.
`ITextHover`
`getTextHover(ISourceViewer sourceViewer, String contentType)`
Returns the text hover which will provide the information to be shown in a text hover popup window when requested for the given source viewer and the given content type.
`ITextHover`
`getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask)`
Returns the text hover which will provide the information to be shown in a text hover popup window when requested for the given source viewer and the given content type.
`IUndoManager`
`getUndoManager(ISourceViewer sourceViewer)`
Returns the undo manager for the given source viewer.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SourceViewerConfiguration

public SourceViewerConfiguration()
Creates a new source viewer configuration that behaves according to specification of this class' methods.

## Method Details

### getTabWidth

public int getTabWidth(ISourceViewer sourceViewer)
Returns the visual width of the tab character. This implementation always returns 4.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the tab width

### getLineSpacing

public int getLineSpacing(ISourceViewer sourceViewer)
Returns the line space for the given source viewer. This implementation always returns 0.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the line space
Since:
  3.23
See Also:
  - `StyledText.setLineSpacing(int)`

### getUndoManager

public IUndoManager getUndoManager(ISourceViewer sourceViewer)
Returns the undo manager for the given source viewer. This implementation always returns a new instance of `DefaultUndoManager` whose history length is set to 25.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an undo manager or `null` if no undo/redo should not be supported

### getReconciler

public IReconciler getReconciler(ISourceViewer sourceViewer)
Returns the reconciler ready to be used with the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  a reconciler or `null` if reconciling should not be supported

### getPresentationReconciler

public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer)
Returns the presentation reconciler ready to be used with the given source viewer.

Parameters:
  `sourceViewer` - the source viewer
Returns:
  the presentation reconciler or `null` if presentation reconciling should not be supported

### getContentFormatter

public IContentFormatter getContentFormatter(ISourceViewer sourceViewer)
Returns the content formatter ready to be used with the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  a content formatter or `null` if formatting should not be supported

### getContentAssistant

public IContentAssistant getContentAssistant(ISourceViewer sourceViewer)
Returns the content assistant ready to be used with the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  a content assistant or `null` if content assist should not be supported

### getQuickAssistAssistant

public IQuickAssistAssistant getQuickAssistAssistant(ISourceViewer sourceViewer)
Returns the quick assist assistant ready to be used with the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  a quick assist assistant or `null` if quick assist should not be supported
Since:
  3.2

### getAutoIndentStrategy

@Deprecated public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType)
Deprecated.
since 3.1 use `getAutoEditStrategies(ISourceViewer, String)` instead
Returns the auto indentation strategy ready to be used with the given source viewer when manipulating text of the given content type. This implementation always returns an new instance of `DefaultAutoIndentStrategy`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type for which the strategy is applicable
Returns:
  the auto indent strategy or `null` if automatic indentation is not to be enabled

### getAutoEditStrategies

public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType)
Returns the auto edit strategies ready to be used with the given source viewer when manipulating text of the given content type. For backward compatibility, this implementation always returns an array containing the result of `getAutoIndentStrategy(ISourceViewer, String)`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type for which the strategies are applicable
Returns:
  the auto edit strategies or `null` if automatic editing is not to be enabled
Since:
  3.1

### getDefaultPrefixes

public String[] getDefaultPrefixes(ISourceViewer sourceViewer, String contentType)
Returns the default prefixes to be used by the line-prefix operation in the given source viewer for text of the given content type. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type for which the prefix is applicable
Returns:
  the default prefixes or `null` if the prefix operation should not be supported
Since:
  2.0

### getDoubleClickStrategy

public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType)
Returns the double-click strategy ready to be used in this viewer when double clicking onto text of the given content type. This implementation always returns a new instance of `DefaultTextDoubleClickStrategy`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type for which the strategy is applicable
Returns:
  a double-click strategy or `null` if double clicking should not be supported

### getIndentPrefixes

public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType)
Returns the prefixes to be used by the line-shift operation. This implementation always returns `new String[] { "\t", " ", "" }`.

Note: This default is incorrect but cannot be changed in order not to break any existing clients. Subclasses should overwrite this method and use `getIndentPrefixesForTab(int)` if applicable.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type for which the prefix is applicable
Returns:
  the prefixes or `null` if the prefix operation should not be supported

### getIndentPrefixesForTab

protected String[] getIndentPrefixesForTab(int tabWidth)
Computes and returns the indent prefixes for tab indentation which is represented as `tabSizeInSpaces`.

Parameters:
  `tabWidth` - the display tab width
Returns:
  the indent prefixes
Since:
  3.3
See Also:
  - `getIndentPrefixes(ISourceViewer, String)`

### getAnnotationHover

public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer)
Returns the annotation hover which will provide the information to be shown in a hover popup window when requested for the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an annotation hover or `null` if no hover support should be installed

### getOverviewRulerAnnotationHover

public IAnnotationHover getOverviewRulerAnnotationHover(ISourceViewer sourceViewer)
Returns the annotation hover which will provide the information to be shown in a hover popup window when requested for the overview ruler of the given source viewer.This implementation always returns the general annotation hover returned by `getAnnotationHover`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an annotation hover or `null` if no hover support should be installed
Since:
  3.0

### getConfiguredTextHoverStateMasks

public int[] getConfiguredTextHoverStateMasks(ISourceViewer sourceViewer, String contentType)
Returns the SWT event state masks for which text hover are configured for the given content type.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type
Returns:
  an `int` array with the configured SWT event state masks or `null` if text hovers are not supported for the given content type
Since:
  2.1

### getTextHover

public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask)
Returns the text hover which will provide the information to be shown in a text hover popup window when requested for the given source viewer and the given content type. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type
  `stateMask` - the SWT event state mask
Returns:
  a text hover or `null` if no hover support should be installed
Since:
  2.1

### getTextHover

public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType)
Returns the text hover which will provide the information to be shown in a text hover popup window when requested for the given source viewer and the given content type. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
  `contentType` - the content type
Returns:
  a text hover or `null` if no hover support should be installed

### getInformationControlCreator

public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer)
Returns the information control creator. The creator is a factory creating information controls for the given source viewer. This implementation always returns a creator for `DefaultInformationControl` instances.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the information control creator or `null` if no information support should be installed
Since:
  2.0

### getInformationPresenter

public IInformationPresenter getInformationPresenter(ISourceViewer sourceViewer)
Returns the information presenter which will determine and shown information requested for the current cursor position. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an information presenter `null` if no information presenter should be installed
Since:
  2.0

### getConfiguredContentTypes

public String[] getConfiguredContentTypes(ISourceViewer sourceViewer)
Returns all configured content types for the given source viewer. This list tells the caller which content types must be configured for the given source viewer, i.e. for which content types the given source viewer's functionalities must be specified. This implementation always returns `new String[] { IDocument.DEFAULT_CONTENT_TYPE }`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the configured content types for the given viewer

### getConfiguredDocumentPartitioning

public String getConfiguredDocumentPartitioning(ISourceViewer sourceViewer)
Returns the configured partitioning for the given source viewer. The partitioning is used when the querying content types from the source viewer's input document. This implementation always returns `IDocumentExtension3.DEFAULT_PARTITIONING`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the configured partitioning
Since:
  3.0
See Also:
  - `getConfiguredContentTypes(ISourceViewer)`

### getHyperlinkDetectors

public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer)
Returns the hyperlink detectors which be used to detect hyperlinks in the given source viewer. This implementation always returns an array with an URL hyperlink detector.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an array with hyperlink detectors or `null` if no hyperlink support should be installed
Since:
  3.1

### getHyperlinkPresenter

public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer)
Returns the hyperlink presenter for the given source viewer. This implementation always returns the `DefaultHyperlinkPresenter`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the hyperlink presenter or `null` if no hyperlink support should be installed
Since:
  3.1

### getHyperlinkStateMask

public int getHyperlinkStateMask(ISourceViewer sourceViewer)
Returns the SWT event state mask which in combination with the left mouse button activates hyperlinking. This implementation always returns the `SWT.MOD1`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  the SWT event state mask to activate hyperlink mode
Since:
  3.1

### getCodeMiningProviders

public ICodeMiningProvider[] getCodeMiningProviders(ISourceViewer sourceViewer)
Returns the code mining providers which be used to draw code minings in the given source viewer. This implementation always returns `null`.

Parameters:
  `sourceViewer` - the source viewer to be configured by this configuration
Returns:
  an array with code mining providers or `null` if no code mining support should be installed
Since:
  3.13