[formatter] formatAroundRange must use file indents

This commit is contained in:
Yaroslav Lepenkin
2016-06-29 12:18:37 +03:00
parent b3e198a1de
commit 3b301237b7
3 changed files with 11 additions and 10 deletions
@@ -18,8 +18,8 @@ package com.intellij.formatting;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.util.IncorrectOperationException;
@@ -113,8 +113,10 @@ public abstract class FormatterEx{
final CommonCodeStyleSettings.IndentOptions indentOptions,
final TextRange rangeToAdjust);
public abstract void formatAroundRange(final FormattingModel model, final CodeStyleSettings settings,
final TextRange textRange, final FileType fileType);
public abstract void formatAroundRange(final FormattingModel model,
final CodeStyleSettings settings,
final PsiFile file,
final TextRange textRange);
public abstract void adjustTextRange(FormattingModel model,
CodeStyleSettings settings,
@@ -22,7 +22,6 @@ import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Computable;
@@ -393,17 +392,17 @@ public class FormatterImpl extends FormatterEx
}
@Override
public void formatAroundRange(final FormattingModel model,
final CodeStyleSettings settings,
final TextRange textRange,
final FileType fileType) {
public void formatAroundRange(FormattingModel model,
CodeStyleSettings settings,
PsiFile file,
TextRange textRange) {
disableFormatting();
try {
validateModel(model);
final FormattingDocumentModel documentModel = model.getDocumentModel();
final Block block = model.getRootBlock();
final FormatProcessor processor = buildProcessorAndWrapBlocks(
documentModel, block, settings, settings.getIndentOptions(fileType), null
documentModel, block, settings, settings.getIndentOptionsByFile(file), null
);
LeafBlockWrapper tokenBlock = processor.getFirstTokenBlock();
while (tokenBlock != null) {
@@ -319,7 +319,7 @@ public class CodeStyleManagerImpl extends CodeStyleManager {
final FormattingModelBuilder builder = LanguageFormatting.INSTANCE.forContext(containingFile);
if (builder != null) {
final FormattingModel model = CoreFormatterUtil.buildModel(builder, containingFile, getSettings(), FormattingMode.REFORMAT);
FormatterEx.getInstanceEx().formatAroundRange(model, getSettings(), textRange, containingFile.getFileType());
FormatterEx.getInstanceEx().formatAroundRange(model, getSettings(), containingFile, textRange);
}
adjustLineIndent(containingFile, textRange);