package org.jetbrains.plugins.cucumber.psi.formatter; import com.intellij.formatting.FormattingModel; import com.intellij.formatting.FormattingModelBuilder; import com.intellij.lang.ASTNode; import com.intellij.openapi.util.TextRange; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.codeStyle.CodeStyleSettings; import com.intellij.psi.formatter.DocumentBasedFormattingModel; import com.intellij.psi.impl.source.SourceTreeToPsiMap; import com.intellij.psi.impl.source.tree.FileElement; import com.intellij.psi.impl.source.tree.TreeElement; import com.intellij.psi.impl.source.tree.TreeUtil; import org.jetbrains.annotations.NotNull; /** * @author yole */ public class GherkinFormattingModelBuilder implements FormattingModelBuilder { @NotNull public FormattingModel createModel(PsiElement element, CodeStyleSettings settings) { final PsiFile file = element.getContainingFile(); final FileElement fileElement = TreeUtil.getFileElement((TreeElement)SourceTreeToPsiMap.psiElementToTree(element)); final GherkinBlock rootBlock = new GherkinBlock(fileElement); //FormattingModelDumper.dumpFormattingModel(rootBlock, 0, System.out); return new DocumentBasedFormattingModel(rootBlock, file.getProject(), settings, file.getFileType(), file); } public TextRange getRangeAffectingIndent(PsiFile file, int offset, ASTNode elementAtOffset) { return null; } }