Esempio n. 1
0
  public static List<PsiElement> createExpressionFromText(Project project, @NonNls String text)
      throws IncorrectOperationException {
    // XXX why we need this?
    // ParserDefinition def = ParserFileType.PARSER_FILE_TYPE.getLanguage().getParserDefinition();
    // assert def != null;

    StringBuilder builder = new StringBuilder("@main[]\n");
    builder.append(text).append("\n");

    final PsiFile dummyFile =
        PsiFileFactory.getInstance(project)
            .createFileFromText(
                DUMMY + ParserFileType.PARSER_FILE_TYPE.getDefaultExtension(), builder.toString());

    ParserMethod method = PsiTreeUtil.getChildOfType(dummyFile, ParserMethod.class);
    PsiElement[] children = method.getChildren();

    List<PsiElement> toReturn = new ArrayList<PsiElement>();

    for (PsiElement element : children) {
      if (element instanceof ParserParameterList || element.getText().equals("\n")) continue;
      toReturn.add(element);
    }

    return toReturn;
  }
Esempio n. 2
0
 public static ASTNode createNameIdentifier(Project project, String name)
     throws IncorrectOperationException {
   final PsiFile dummyFile =
       PsiFileFactory.getInstance(project)
           .createFileFromText(
               DUMMY + ParserFileType.PARSER_FILE_TYPE.getDefaultExtension(), name);
   final PsiElement expressionStatement = dummyFile.getFirstChild();
   assert expressionStatement != null;
   return expressionStatement.getNode();
 }