properties: use PsiBasedFormattingModel (IDEA-163408)

This commit is contained in:
Dmitry Batkovich
2017-04-14 14:14:18 +03:00
parent c27f083286
commit fd1bf63dbb
@@ -22,6 +22,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.formatter.FormattingDocumentModelImpl;
import com.intellij.psi.formatter.PsiBasedFormattingModel;
import com.intellij.psi.impl.source.SourceTreeToPsiMap;
import com.intellij.psi.impl.source.tree.TreeElement;
import com.intellij.psi.impl.source.tree.TreeUtil;
@@ -34,10 +35,10 @@ import org.jetbrains.annotations.Nullable;
public class PropertiesFormattingModelBuilder implements FormattingModelBuilder {
@NotNull
@Override
public PropertiesFormattingModel createModel(PsiElement element, CodeStyleSettings settings) {
public FormattingModel createModel(PsiElement element, CodeStyleSettings settings) {
final ASTNode root = TreeUtil.getFileElement((TreeElement)SourceTreeToPsiMap.psiElementToTree(element));
final FormattingDocumentModelImpl documentModel = FormattingDocumentModelImpl.createOn(element.getContainingFile());
return new PropertiesFormattingModel(root, documentModel, settings);
return new PsiBasedFormattingModel(element.getContainingFile(), new PropertiesRootBlock(root, settings), documentModel);
}
@Nullable
@@ -45,41 +46,4 @@ public class PropertiesFormattingModelBuilder implements FormattingModelBuilder
public TextRange getRangeAffectingIndent(PsiFile file, int offset, ASTNode elementAtOffset) {
return null;
}
private static class PropertiesFormattingModel implements FormattingModel {
private final FormattingDocumentModelImpl myDocumentModel;
private PropertiesRootBlock myRoot;
public PropertiesFormattingModel(ASTNode root, FormattingDocumentModelImpl documentModel, CodeStyleSettings settings) {
myRoot = new PropertiesRootBlock(root, settings);
myDocumentModel = documentModel;
}
@NotNull
@Override
public Block getRootBlock() {
return myRoot;
}
@NotNull
@Override
public FormattingDocumentModel getDocumentModel() {
return myDocumentModel;
}
@Override
public TextRange replaceWhiteSpace(TextRange textRange, String whiteSpace) {
return textRange;
}
@Override
public TextRange shiftIndentInsideRange(ASTNode node, TextRange range, int indent) {
return null;
}
@Override
public void commitChanges() {
}
}
}