@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 PsiBuilder getBuilder(PsiElement psi, ASTNode chameleon) { return PsiBuilderFactory.getInstance() .createBuilder(psi.getProject(), chameleon, getLexer(psi), getLanguageForParser(psi), chameleon.getChars()); } }
@Override protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) { Project project = psi.getProject(); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder( project, chameleon, new PerlMergingLexerAdapter(project), PerlLanguage.INSTANCE, chameleon.getText() ); PsiParser parser = PerlParserImpl.INSTANCE; return parser.parse(this, builder).getFirstChildNode(); }
@Override public ASTNode parseContents(@NotNull ASTNode chameleon) { PsiElement parentElement = chameleon.getTreeParent().getPsi(); Project project = parentElement.getProject(); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder( project, chameleon, getLexer(parentElement.getProject()), getLanguage(), chameleon.getText()); return getParser().parse(this, builder).getFirstChildNode(); }
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(); }
public static boolean collectExpressionsAtOffset(Project project, Editor previewEditor, LivePreviewLanguage language, final PairProcessor<BnfExpression, Boolean> processor) { Lexer lexer = new LivePreviewLexer(project, language); final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language); final PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(parserDefinition, lexer, previewEditor.getDocument().getText()); final int caretOffset = previewEditor.getCaretModel().getOffset(); final PsiParser parser = new LivePreviewParser(project, language) {