# Interface ICompletionListener

All Known Implementing Classes:
  `KeyBindingSupportForAssistant`

public interface ICompletionListener
A completion listener is informed before the content assistant computes completion proposals.

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

- `ICompletionListenerExtension` since version 3.4 introducing the following functions:
  - additional notification about restarting the current code assist session
- `ICompletionListenerExtension2` since version 3.8 introducing the following functions:
  - additional notification after applying a proposal

Clients may implement this interface.

Since:
  3.2

## Method Summary

Modifier and Type
Method
Description
`void`
`assistSessionEnded(ContentAssistEvent event)`
Called when a code assist session ends (for example, the proposal popup is closed).
`void`
`assistSessionStarted(ContentAssistEvent event)`
Called when code assist is invoked when there is no current code assist session.
`void`
`selectionChanged(ICompletionProposal proposal, boolean smartToggle)`
Called when the selection in the proposal popup is changed or if the insert-mode changed.

## Method Details

### assistSessionStarted

void assistSessionStarted(ContentAssistEvent event)
Called when code assist is invoked when there is no current code assist session.

Parameters:
  `event` - the content assist event

### assistSessionEnded

void assistSessionEnded(ContentAssistEvent event)
Called when a code assist session ends (for example, the proposal popup is closed).

Parameters:
  `event` - the content assist event

### selectionChanged

void selectionChanged(ICompletionProposal proposal, boolean smartToggle)
Called when the selection in the proposal popup is changed or if the insert-mode changed.

Parameters:
  `proposal` - the newly selected proposal, possibly `null`
  `smartToggle` - `true` if the insert-mode toggle is being pressed, `false` otherwise