FormattingModel (@NotNull FormattingContext formattingContext) { PsiElement element = formattingContext.getPsiElement(); if (element instanceof PsiFile) { final FileViewProvider viewProvider = ((PsiFile)element).getViewProvider(); if (viewProvider instanceof TemplateLanguageFileViewProvider) { final Language templateDataLanguage = ((TemplateLanguageFileViewProvider)viewProvider).getTemplateDataLanguage(); FormattingModelBuilder builder = LanguageFormatting.INSTANCE.forLanguage(templateDataLanguage); if (builder != null && templateDataLanguage != element.getLanguage()) { return builder.createModel(formattingContext.withPsiElement(viewProvider.getPsi(templateDataLanguage))); } } } final PsiFile file = element.getContainingFile(); return new DocumentBasedFormattingModel(new AbstractBlock(element.getNode(), Wrap.createWrap(WrapType.NONE, false), Alignment.createAlignment()) { @Override protected List<Block> buildChildren() { return Collections.emptyList(); } @Override public Spacing getSpacing(final Block child1, final @NotNull Block child2) { return Spacing.getReadOnlySpacing(); } @Override public boolean isLeaf() { return true; } }, element.getProject(), formattingContext.getCodeStyleSettings(), file.getFileType(), file); }