public TextRange rightDelimiter(int offset, EditorAdaptor editorAdaptor, int count)
      throws CommandExecutionException {
    Position right = rightMotion.destination(offset, editorAdaptor, count);

    Position rightDelim =
        VimUtils.fixRightDelimiter(
            editorAdaptor.getModelContent(), editorAdaptor.getCursorService(), right);

    return new StartEndTextRange(rightDelim, right.addModelOffset(1));
  }
  /**
   * Vim doesn't start a delimited range on a newline or end a range on an empty line (try 'vi{'
   * while within a function for proof). So, define the range for delimiters to include the
   * character on one end but stop at the newline boundary at the other end. This is to handle the
   * difference between 'i' and 'a' for delimited text objects.
   */
  public TextRange leftDelimiter(int offset, EditorAdaptor editorAdaptor, int count)
      throws CommandExecutionException {
    Position left = leftMotion.destination(offset, editorAdaptor, count);

    Position leftDelim =
        VimUtils.fixLeftDelimiter(
            editorAdaptor.getModelContent(), editorAdaptor.getCursorService(), left);

    return new StartEndTextRange(left, leftDelim);
  }