Package org.eclipse.jface.text

# Interface IFindReplaceTarget

public interface IFindReplaceTarget
Defines the target for finding and replacing strings.

The two main methods are `findAndSelect` and `replaceSelection`. The target does not provide any way to modify the content other than replacing the selection.

In order to provide backward compatibility for clients of `IFindReplaceTarget`, extension interfaces are used as a means of evolution. The following extension interfaces exist:

- `IFindReplaceTargetExtension` since version 2.0 introducing the notion of find/replace session and of a find/replace scope. In additions, in allows clients to replace all occurrences of a given find query.
- `IFindReplaceTargetExtension3` since version 3.0 allowing clients to specify search queries as regular expressions.
- `IFindReplaceTargetExtension4` since version 3.19 allowing clients to select multiple text ranges in the target.

Clients of a `IFindReplaceTarget` that also implements the `IFindReplaceTargetExtension` have to indicate the start of a find/replace session before using the target and to indicate the end of the session when the target is no longer used.

See Also:
  - `IFindReplaceTargetExtension`
  - `IFindReplaceTargetExtension3`
  - `IFindReplaceTargetExtension4`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canPerformFind()`
Returns whether a find operation can be performed.
`int`
`findAndSelect(int widgetOffset, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord)`
Searches for a string starting at the given widget offset and using the specified search directives.
`Point`
`getSelection()`
Returns the currently selected range of characters as an offset and length in widget coordinates.
`String`
`getSelectionText()`
Returns the currently selected characters as a string.
`boolean`
`isEditable()`
Returns whether this target can be modified.
`void`
`replaceSelection(String text)`
Replaces the currently selected range of characters with the given text.

## Method Details

### canPerformFind

boolean canPerformFind()
Returns whether a find operation can be performed.

Returns:
  whether a find operation can be performed

### findAndSelect

int findAndSelect(int widgetOffset, String findString, boolean searchForward, boolean caseSensitive, boolean wholeWord)
Searches for a string starting at the given widget offset and using the specified search directives. If a string has been found it is selected and its start offset is returned.

Replaced by `IFindReplaceTargetExtension3.findAndSelect(int, String, boolean, boolean, boolean, boolean)`.

Parameters:
  `widgetOffset` - the widget offset at which searching starts
  `findString` - the string which should be found
  `searchForward` - `true` searches forward, `false` backwards
  `caseSensitive` - `true` performs a case sensitive search, `false` an insensitive search
  `wholeWord` - if `true` only occurrences are reported in which the findString stands as a word by itself
Returns:
  the position of the specified string, or -1 if the string has not been found

### getSelection

Point getSelection()
Returns the currently selected range of characters as an offset and length in widget coordinates.

Returns:
  the currently selected character range in widget coordinates

### getSelectionText

String getSelectionText()
Returns the currently selected characters as a string.

Returns:
  the currently selected characters

### isEditable

boolean isEditable()
Returns whether this target can be modified.

Returns:
  `true` if target can be modified

### replaceSelection

void replaceSelection(String text)
Replaces the currently selected range of characters with the given text. This target must be editable. Otherwise nothing happens.

Replaced by `IFindReplaceTargetExtension3.replaceSelection(String, boolean)`.

Parameters:
  `text` - the substitution text