@Nullable @Override protected PsiFile createFile(@NotNull com.intellij.lang.Language language) { ParserDefinition parserDefinition = getDefinition(language); PsiFileImpl psiFileImpl; if (parserDefinition == null) { psiFileImpl = null; } else if (language.isKindOf(getBaseLanguage())) { psiFileImpl = (PsiFileImpl) parserDefinition.createFile(this); } else { psiFileImpl = (PsiFileImpl) parserDefinition.createFile(this); psiFileImpl.setContentElementType(elementType(language)); } return psiFileImpl; }
@Nullable @Override public Lexer getIndexingLexer(@NotNull PsiFile file) { return file instanceof GoFile ? ((GoFile)file).getParserDefinition().createLexer(file.getProject()) : null; }
@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(); } }
@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); }
? def.createLexer(project) : new PrefixSuffixAddingLexer(def.createLexer(project), prefix, TokenType.WHITE_SPACE, suffix, TokenType.WHITE_SPACE); textProcessor); return def.createParser(project).parse(this, psiBuilder).getFirstChildNode();
/** Builds a new instance of {@link IgnoreFile}. */ public IgnoreFile(@NotNull FileViewProvider viewProvider, @NotNull IgnoreFileType fileType) { super(viewProvider); this.fileType = fileType; this.language = findLanguage(fileType.getLanguage(), viewProvider); final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(this.language); if (parserDefinition == null) { throw new RuntimeException( "PsiFileBase: language.getParserDefinition() returned null for: " + this.language ); } this.parserDefinition = parserDefinition; final IFileElementType nodeType = parserDefinition.getFileNodeType(); init(nodeType, nodeType); }
@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(); }
@Override public void configureFromParserDefinition(@NotNull com.intellij.lang.ParserDefinition parserDefinition, @NotNull String extension) { myLanguage = parserDefinition.getFileNodeType().getLanguage(); myFileExt = extension; addExplicitExtension(LanguageParserDefinitions.INSTANCE, myLanguage, parserDefinition); registerExtensionPoint(FileTypeRegistrator.EP_NAME, FileTypeRegistrator.class); MutablePicoContainer picoContainer = getApplication().getPicoContainer(); MessageBus messageBus = messageBus(picoContainer); registerApplicationService(PropertiesComponent.class, new AppPropertiesComponentImpl()); registerExtensionPoint(EmbeddedTokenTypesProvider.EXTENSION_POINT_NAME, EmbeddedTokenTypesProvider.class); unregisterAutoDetectionCacheAttribute(); FileTypeManagerImpl fileTypeManager = new FileTypeManagerImpl(messageBus, new MockSchemeManagerFactory(), new AppPropertiesComponentImpl()); registerFileType(fileTypeManager, HtmlFileType.INSTANCE); registerFileType(fileTypeManager, Type.INSTANCE); registerComponentInstance(picoContainer, FileTypeManager.class, fileTypeManager); } }
@Nullable @Override protected PsiFile createFile(@NotNull Language lang) { if (lang != PerlLanguage.INSTANCE && lang != PodLanguage.INSTANCE) { return null; } final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang); if (parserDefinition != null) { final PsiFileImpl psiFile = (PsiFileImpl)parserDefinition.createFile(this); if (lang == PodLanguage.INSTANCE) { psiFile.setContentElementType(POD_BLOCK); } return psiFile; } return null; }
@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(); } }
@Nullable protected PsiFile createFile(@NotNull String name, @NotNull String text, @NotNull ParserDefinition definition) { Language language = definition.getFileNodeType().getLanguage(); Init.addKeyedExtension(LanguageParserDefinitions.INSTANCE, language, definition, getProject()); return ((PsiFileFactoryImpl)PsiFileFactory.getInstance(myProject)).trySetupPsiForFile(new LightVirtualFile(name, language, text), language, true, false); }
@Nullable @Override public Lexer getIndexingLexer(@NotNull PsiFile file) { if (file instanceof BallerinaFile) { return ((BallerinaFile) file).getParserDefinition().createLexer(file.getProject()); } return null; }
@Nullable @Override protected PsiFile createFile(@NotNull Language lang) { if (lang != Mason2Language.INSTANCE && lang != PodLanguage.INSTANCE) { return null; } final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang); if (parserDefinition != null) { final PsiFileImpl psiFile = (PsiFileImpl)parserDefinition.createFile(this); if (lang == PodLanguage.INSTANCE) { psiFile.setContentElementType(POD_BLOCK); } return psiFile; } return null; }
@NotNull protected PsiParser getParser(PsiElement psi) { return LanguageParserDefinitions.INSTANCE.forLanguage(getLanguageForParser(psi)).createParser(psi.getProject()); }
parser.parse(parserDefinition.getFileNodeType(), builder); return true;
@Nullable @Override protected PsiFile createFile(@NotNull Language lang) { if (lang == getTemplateDataLanguage()) { ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(getTemplateDataLanguage()); if (parserDefinition == null) { return null; } final PsiFileImpl file = (PsiFileImpl)parserDefinition.createFile(this); file.setContentElementType(TemplateToolkitElementTypes.TT2_TEMPLATE_DATA); return file; } if (lang == getBaseLanguage()) { return LanguageParserDefinitions.INSTANCE.forLanguage(lang).createFile(this); } return null; }
@Override @Nullable protected PsiFile createFile(@NotNull final Language lang) { if (lang != PodLanguage.INSTANCE && lang != getBaseLanguage() && lang != getTemplateDataLanguage()) { return null; } final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang); if (parserDefinition != null) { final PsiFileImpl file = (PsiFileImpl)parserDefinition.createFile(this); if (lang == getTemplateDataLanguage()) { file.setContentElementType(getTemplateContentElementType()); } else if (lang == PodLanguage.INSTANCE) { file.setContentElementType(getPODContentElementType()); } return file; } return null; }