package org.jetbrains.plugins.clojure.formatter;
import com.intellij.formatting.FormattingModel;
import com.intellij.formatting.FormattingModelBuilder;
import com.intellij.formatting.FormattingModelProvider;
import com.intellij.formatting.Indent;
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 org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author ilyas
*/
public class ClojureFormattingModelBuilder implements FormattingModelBuilder {
@NotNull
public FormattingModel createModel(final PsiElement element, final CodeStyleSettings settings) {
ASTNode node = element.getNode();
assert node != null;
PsiFile containingFile = element.getContainingFile();
ASTNode astNode = containingFile.getNode();
assert astNode != null;
return FormattingModelProvider.createFormattingModelForPsiFile(containingFile,
new ClojureBlock(astNode, null, Indent.getAbsoluteNoneIndent(), null, settings), settings);
}
@Nullable
public TextRange getRangeAffectingIndent(PsiFile file, int offset, ASTNode elementAtOffset) {
return null;
}
}