Package org.eclipse.jdt.core

# Interface ICodeAssist

All Known Subinterfaces:
  `IClassFile`, `ICompilationUnit`, `IModularClassFile`, `IOrdinaryClassFile`, `ITypeRoot`

public interface ICodeAssist
Common protocol for Java elements that support source code assist and code resolve.

Restriction:
  This interface is not intended to be implemented by clients.

## Method Summary

Modifier and Type
Method
Description
`void`
`codeComplete(int offset, CompletionRequestor requestor)`
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor.
`void`
`codeComplete(int offset, CompletionRequestor requestor, IProgressMonitor monitor)`
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor.
`void`
`codeComplete(int offset, CompletionRequestor requestor, WorkingCopyOwner owner)`
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor.
`void`
`codeComplete(int offset, CompletionRequestor requestor, WorkingCopyOwner owner, IProgressMonitor monitor)`
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor.
`void`
`codeComplete(int offset, ICodeCompletionRequestor requestor)`
Deprecated.
Use `codeComplete(int, ICompletionRequestor)` instead.
`void`
`codeComplete(int offset, ICompletionRequestor requestor)`
Deprecated.
Use `codeComplete(int, CompletionRequestor)` instead.
`void`
`codeComplete(int offset, ICompletionRequestor requestor, WorkingCopyOwner owner)`
Deprecated.
Use `codeComplete(int, CompletionRequestor, WorkingCopyOwner)` instead.
`IJavaElement[]`
`codeSelect(int offset, int length)`
Returns the Java elements corresponding to the given selected text in this compilation unit.
`IJavaElement[]`
`codeSelect(int offset, int length, WorkingCopyOwner owner)`
Returns the Java elements corresponding to the given selected text in this compilation unit.

## Method Details

### codeComplete

void codeComplete(int offset, ICodeCompletionRequestor requestor) throws JavaModelException
Deprecated.
Use `codeComplete(int, ICompletionRequestor)` instead.
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit.

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`

### codeComplete

void codeComplete(int offset, ICompletionRequestor requestor) throws JavaModelException
Deprecated.
Use `codeComplete(int, CompletionRequestor)` instead.
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit.

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  2.0

### codeComplete

void codeComplete(int offset, CompletionRequestor requestor) throws JavaModelException
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit.

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  3.0

### codeComplete

void codeComplete(int offset, CompletionRequestor requestor, IProgressMonitor monitor) throws JavaModelException
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit.

If `IProgressMonitor` is not `null` then some proposals which can be very long to compute are proposed. To avoid that the code assist operation take too much time a `IProgressMonitor` which automatically cancel the code assist operation when a specified amount of time is reached could be used.

     new IProgressMonitor() {
         private final static int TIMEOUT = 500; //ms
         private long endTime;
         public void beginTask(String name, int totalWork) {
             fEndTime= System.currentTimeMillis() + TIMEOUT;
         }
         public boolean isCanceled() {
             return endTime <= System.currentTimeMillis();
         }
         ...
     };

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
  `monitor` - the progress monitor used to report progress
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  3.5

### codeComplete

void codeComplete(int offset, ICompletionRequestor requestor, WorkingCopyOwner owner) throws JavaModelException
Deprecated.
Use `codeComplete(int, CompletionRequestor, WorkingCopyOwner)` instead.
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.

Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
  `owner` - the owner of working copies that take precedence over their original compilation units
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  3.0

### codeComplete

void codeComplete(int offset, CompletionRequestor requestor, WorkingCopyOwner owner) throws JavaModelException
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.

Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
  `owner` - the owner of working copies that take precedence over their original compilation units
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  3.0

### codeComplete

void codeComplete(int offset, CompletionRequestor requestor, WorkingCopyOwner owner, IProgressMonitor monitor) throws JavaModelException
Performs code completion at the given offset position in this compilation unit, reporting results to the given completion requestor. The `offset` is the 0-based index of the character, after which code assist is desired. An `offset` of -1 indicates to code assist at the beginning of this compilation unit. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.

Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.

If `IProgressMonitor` is not `null` then some proposals which can be very long to compute are proposed. To avoid that the code assist operation take too much time a `IProgressMonitor` which automatically cancel the code assist operation when a specified amount of time is reached could be used.

     new IProgressMonitor() {
         private final static int TIMEOUT = 500; //ms
         private long endTime;
         public void beginTask(String name, int totalWork) {
             fEndTime= System.currentTimeMillis() + TIMEOUT;
         }
         public boolean isCanceled() {
             return endTime <= System.currentTimeMillis();
         }
         ...
     };

Parameters:
  `offset` - the given offset position
  `requestor` - the given completion requestor
  `owner` - the owner of working copies that take precedence over their original compilation units
  `monitor` - the progress monitor used to report progress
Throws:
  `JavaModelException` - if code assist could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this compilation unit's source length (INDEX_OUT_OF_BOUNDS)
  `IllegalArgumentException` - if `requestor` is `null`
Since:
  3.5

### codeSelect

IJavaElement[] codeSelect(int offset, int length) throws JavaModelException
Returns the Java elements corresponding to the given selected text in this compilation unit. The `offset` is the 0-based index of the first selected character. The `length` is the number of selected characters.

Note that if the `length` is 0 and the `offset` is inside an identifier or the index just after an identifier then this identifier is considered as the selection.

Parameters:
  `offset` - the given offset position
  `length` - the number of selected characters
Returns:
  the Java elements corresponding to the given selected text
Throws:
  `JavaModelException` - if code resolve could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The range specified is not within this element's source range (INDEX_OUT_OF_BOUNDS)

### codeSelect

IJavaElement[] codeSelect(int offset, int length, WorkingCopyOwner owner) throws JavaModelException
Returns the Java elements corresponding to the given selected text in this compilation unit. The `offset` is the 0-based index of the first selected character. The `length` is the number of selected characters. It considers types in the working copies with the given owner first. In other words, the owner's working copies will take precedence over their original compilation units in the workspace.

Note that if the `length` is 0 and the `offset` is inside an identifier or the index just after an identifier then this identifier is considered as the selection.

Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.

Parameters:
  `offset` - the given offset position
  `length` - the number of selected characters
  `owner` - the owner of working copies that take precedence over their original compilation units
Returns:
  the Java elements corresponding to the given selected text
Throws:
  `JavaModelException` - if code resolve could not be performed. Reasons include:
  - This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The range specified is not within this element's source range (INDEX_OUT_OF_BOUNDS)
Since:
  3.0