org.eclipse.wst.jsdt.core

## Interface ICodeAssist

All Known Subinterfaces:
  IClassFile, IJavaScriptUnit, ITypeRoot

    public interface ICodeAssist

Common protocol for JavaScript elements that support source code assist and code resolve.

This interface is not intended to be implemented by clients.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `codeComplete(int offset, CompletionRequestor requestor)` Performs code completion at the given offset position in this javaScript 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 javaScript unit, reporting results to the given completion requestor.
`IJavaScriptElement[]` `codeSelect(int offset, int length)` Returns the JavaScript elements corresponding to the given selected text in this javaScript unit.
`IJavaScriptElement[]` `codeSelect(int offset, int length, WorkingCopyOwner owner)` Returns the JavaScript elements corresponding to the given selected text in this javaScript unit.

### Method Detail

#### codeComplete

    void codeComplete(int offset,
                      CompletionRequestor requestor)
               throws JavaScriptModelException

Performs code completion at the given offset position in this javaScript 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 javaScript unit.

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

#### codeComplete

    void codeComplete(int offset,
                      CompletionRequestor requestor,
                      WorkingCopyOwner owner)
               throws JavaScriptModelException

Performs code completion at the given offset position in this javaScript 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 javaScript 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 javaScript units in the workspace.

Note that if a working copy is empty, it will be as if the original javaScript 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 javaScript units
Throws:
  `JavaScriptModelException` - if code assist could not be performed. Reasons include:
  - This JavaScript element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The position specified is < -1 or is greater than this javaScript unit's source length (INDEX_OUT_OF_BOUNDS)
  `java.lang.IllegalArgumentException` - if `requestor` is `null`

#### codeSelect

    IJavaScriptElement[] codeSelect(int offset,
                                    int length)
                             throws JavaScriptModelException

Returns the JavaScript elements corresponding to the given selected text in this javaScript 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 JavaScript elements corresponding to the given selected text
Throws:
  `JavaScriptModelException` - if code resolve could not be performed. Reasons include:
  - This JavaScript element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The range specified is not within this element's source range (INDEX_OUT_OF_BOUNDS)

#### codeSelect

    IJavaScriptElement[] codeSelect(int offset,
                                    int length,
                                    WorkingCopyOwner owner)
                             throws JavaScriptModelException

Returns the JavaScript elements corresponding to the given selected text in this javaScript 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 javaScript 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 javaScript 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 javaScript units
Returns:
  the JavaScript elements corresponding to the given selected text
Throws:
  `JavaScriptModelException` - if code resolve could not be performed. Reasons include:
  - This JavaScript element does not exist (ELEMENT_DOES_NOT_EXIST)
  - The range specified is not within this element's source range (INDEX_OUT_OF_BOUNDS)