@Nullable private Block getInjectedLanguageRoot() { if (myInjectedPsiFile == null || StringUtil.isEmptyOrSpaces(getInjectedTreeRange().subSequence(myInjectedPsiFile.getNode().getChars()))) { return null; } FormattingModelBuilder builder = getInjectedBuilder(); if (builder == null) { return null; } final FormattingModel childModel = builder.createModel(myInjectedPsiFile, mySettings); return new PerlInjectedLanguageBlockWrapper(childModel.getRootBlock(), this); }
public void actionPerformed(AnActionEvent event) { Editor editor = event.getData(PlatformDataKeys.EDITOR); Project project = event.getData(PlatformDataKeys.PROJECT); DialogBuilder dialogBuilder = new DialogBuilder(project); dialogBuilder.setTitle("Formatting Block structure"); final String text = editor != null ? editor.getDocument().getText() : ""; final CodeStyleSettings settings = CodeStyle.getDefaultSettings(); MathematicaFormattingModelBuilder modelBuilder = new MathematicaFormattingModelBuilder(); final PsiFile file = PsiFileFactory.getInstance(project).createFileFromText("a.m", MathematicaLanguage.INSTANCE, text); final FormattingModel model = modelBuilder.createModel(file.getNode().getPsi(), settings); final Block rootBlock = model.getRootBlock(); final String blockText = printBlock((AbstractBlock) rootBlock, text); JTextArea textArea = new JTextArea(blockText); final JScrollPane pane = new JScrollPane(textArea); dialogBuilder.setCenterPanel(pane); dialogBuilder.show(); } }