@Override
  public boolean canSelect(@NotNull final PsiElement e) {
    ASTNode node = BasicJavaAstTreeUtil.toNode(e);
    return
      !BasicJavaAstTreeUtil.is(node, TokenType.WHITE_SPACE) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_JAVA_COMMENT_BIT_SET) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_CODE_BLOCK) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_ARRAY_INITIALIZER_EXPRESSION) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_PARAMETER_LIST) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_EXPRESSION_LIST) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_BLOCK_STATEMENT) &&
      !BasicJavaAstTreeUtil.is(node, JAVA_CODE_REFERENCE_ELEMENT_SET) &&
      !(BasicJavaAstTreeUtil.isJavaToken(node) &&
        !BasicJavaAstTreeUtil.isKeyword(node)) &&
      !BasicJavaAstTreeUtil.is(node, BASIC_DOC_TAG, BASIC_DOC_SNIPPET_TAG, BASIC_DOC_INLINE_TAG) &&
      getElementPredicate().test(e);
  }
@Override
  public boolean canSelect(@NotNull final PsiElement e)