/**
   * Notifies the described extension of a proposal computation session start.
   *
   * <p><em> Note: This method is called every time code assist is invoked and is
   * <strong>not</strong> filtered by partition type. </em>
   */
  public void sessionStarted() {
    if (!isEnabled()) return;

    IStatus status;
    try {
      IRubyCompletionProposalComputer computer = getComputer();
      if (computer == null) // not active yet
      return;

      PerformanceStats stats = startMeter(SESSION_STARTED, computer);
      computer.sessionStarted();
      stopMeter(stats, SESSION_ENDED);

      return;
    } catch (InvalidRegistryObjectException x) {
      status = createExceptionStatus(x);
    } catch (CoreException x) {
      status = createExceptionStatus(x);
    } catch (RuntimeException x) {
      status = createExceptionStatus(x);
    }

    fRegistry.informUser(this, status);
  }