@Nullable @Override protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) { Project project = psi.getProject(); Language languageForParser = getLanguageForParser(psi); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(project, chameleon, null, languageForParser, chameleon.getChars()); PsiParser parser = LanguageParserDefinitions.INSTANCE.forLanguage(languageForParser).createParser(project); builder.putUserData(VIRTUAL_FILE, psi.getContainingFile().getVirtualFile()); ASTNode node = parser.parse(this, builder); return node.getFirstChildNode(); } }
@Override public ASTNode parseContents(ASTNode chameleon) { PsiElement psi = chameleon.getPsi(); assert psi != null : "Bad chameleon: " + chameleon; Project project = psi.getProject(); Language languageForParser = this.getLanguageForParser(psi); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder( project, chameleon, new org.elixir_lang.eex.lexer.EmbeddedElixir(project), languageForParser, chameleon.getChars() ); PsiParser parser = LanguageParserDefinitions.INSTANCE.forLanguage(languageForParser).createParser(project); builder.putUserData(VIRTUAL_FILE, psi.getContainingFile().getVirtualFile()); ASTNode node = parser.parse(this, builder); return node.getFirstChildNode(); } }
@NotNull protected PsiParser getParser(PsiElement psi) { return LanguageParserDefinitions.INSTANCE.forLanguage(getLanguageForParser(psi)).createParser(psi.getProject()); }
@NotNull protected ASTNode createAST(@NotNull String text, @NotNull ParserDefinition definition) { PsiParser parser = definition.createParser(getProject()); Lexer lexer = definition.createLexer(getProject()); PsiBuilderImpl psiBuilder = new PsiBuilderImpl(getProject(), null, definition, lexer, new CharTableImpl(), text, null, null); return parser.parse(definition.getFileNodeType(), psiBuilder); }
textProcessor); return def.createParser(project).parse(this, psiBuilder).getFirstChildNode();
@NotNull protected SyntaxTraverser<LighterASTNode> parseLight(@NotNull String text, @NotNull ParserDefinition definition) { LightPsiParser parser = (LightPsiParser)definition.createParser(getProject()); Lexer lexer = definition.createLexer(getProject()); PsiBuilderImpl psiBuilder = new PsiBuilderImpl(getProject(), null, definition, lexer, new CharTableImpl(), text, null, null); parser.parseLight(definition.getFileNodeType(), psiBuilder); return SyntaxTraverser.lightTraverser(psiBuilder); }
public static PsiElement createEmptyCsvField(Project project) { final String text = "<undefined>"; final IElementType type = CsvTypes.FIELD; final PsiManager psiManager = PsiManager.getInstance(project); final DummyHolder dummyHolder = DummyHolderFactory.createHolder(psiManager, null); final FileElement fileElement = dummyHolder.getTreeElement(); final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(CsvLanguage.INSTANCE); final Lexer lexer = parserDefinition.createLexer(project); final PsiBuilder psiBuilder = PsiBuilderFactory.getInstance().createBuilder(project, fileElement, lexer, CsvLanguage.INSTANCE, text); final ASTNode node = parserDefinition.createParser(project).parse(type, psiBuilder); fileElement.rawAddChildren((com.intellij.psi.impl.source.tree.TreeElement) node); return node.getPsi(); }