package com.bitbakery.plugin.arc.formatting;
/*
* Copyright (c) Kurt Christensen, 2009
*
* Licensed under the Artistic License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at:
*
* http://www.opensource.org/licenses/artistic-license-2.0.php
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License..
*/
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;
/**
* Builds the formatting model for automatically applying proper spacing and indentation to Arc source code.
*/
public class ArcFormattingModelBuilder implements FormattingModelBuilder {
@NotNull
public FormattingModel createModel(final PsiElement element, final CodeStyleSettings settings) {
PsiFile file = element.getContainingFile();
return FormattingModelProvider.createFormattingModelForPsiFile(file,
new ArcBlock(file.getNode(), null, Indent.getAbsoluteNoneIndent(), null, settings), settings);
}
@Nullable
public TextRange getRangeAffectingIndent(PsiFile file, int offset, ASTNode elementAtOffset) {
return null;
}
}