@Nullable private ParserDefinition getDefinition(@NotNull com.intellij.lang.Language language) { com.intellij.lang.Language baseLanguage = getBaseLanguage(); if (language.isKindOf(baseLanguage)) { language = baseLanguage; } return LanguageParserDefinitions.INSTANCE.forLanguage(language); }
public static void unregisterLanguageExtensions(LivePreviewLanguage language) { LanguageStructureViewBuilder.INSTANCE.removeExplicitExtension(language, LanguageStructureViewBuilder.INSTANCE.forLanguage(language)); LanguageParserDefinitions.INSTANCE.removeExplicitExtension(language, LanguageParserDefinitions.INSTANCE.forLanguage(language)); }
public static void registerLanguageExtensions(LivePreviewLanguage language) { LanguageStructureViewBuilder.INSTANCE.addExplicitExtension(language, new LivePreviewStructureViewFactory()); LanguageParserDefinitions.INSTANCE.addExplicitExtension(language, new LivePreviewParserDefinition(language)); //SyntaxHighlighterFactory.LANGUAGE_FACTORY.addExplicitExtension(language, new LivePreviewSyntaxHighlighterFactory(language)); }
public static void init() { if (!INITILAIZED.getAndSet(true)) { Extensions.registerAreaClass("IDEA_PROJECT", null); System.setProperty(TreeNavigator.OVERRIDE_TREE_NAVIGATOR_PROPERTY, MockTreeNavigator.class.getName()); LanguageParserDefinitions.INSTANCE.addExplicitExtension(SoyLanguage.INSTANCE, new SoyParserDefinition()); if (System.getProperty(PsiElementPath.TRACE_PATH_PROPERTY_NAME) == null) { System.setProperty(PsiElementPath.TRACE_PATH_PROPERTY_NAME, PsiElementPath.TRACE_PATH_BY_THREAD); } } }
/** 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); }
@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(); } }
@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; }
@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()); }
@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; }
ParserDefinition def = LanguageParserDefinitions.INSTANCE.forLanguage(BashFileType.BASH_LANGUAGE);
@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; }
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();