@Override
  public void apply(Editor editor, AbstractBasicJavaSmartEnterProcessor processor, @NotNull ASTNode astNode)
    throws IncorrectOperationException {
    if (BasicJavaAstTreeUtil.is(astNode, BASIC_THROW_STATEMENT)) {
      ASTNode expression = BasicJavaAstTreeUtil.getExpression(astNode);
      if (expression != null &&
          startLine(editor, astNode) == startLine(editor, expression)) {
        return;
      }

      final int startOffset = astNode.getTextRange().getStartOffset();
      if (expression != null) {
        editor.getDocument().insertString(startOffset + "throw".length(), ";");
      }
      processor.registerUnresolvedError(startOffset + "throw".length());
    }
  }
@Override
  public void apply(Editor editor, AbstractBasicJavaSmartEnterProcessor processor, @NotNull ASTNode astNode)