From 3b301237b7c0ff20fb67fc121dae77dfdf23ce7b Mon Sep 17 00:00:00 2001 From: Yaroslav Lepenkin Date: Wed, 29 Jun 2016 12:13:08 +0300 Subject: [PATCH] [formatter] formatAroundRange must use file indents --- .../src/com/intellij/formatting/FormatterEx.java | 8 +++++--- .../src/com/intellij/formatting/FormatterImpl.java | 11 +++++------ .../impl/source/codeStyle/CodeStyleManagerImpl.java | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/formatting/FormatterEx.java b/platform/lang-impl/src/com/intellij/formatting/FormatterEx.java index c63084b525f2..2d32c89e3606 100644 --- a/platform/lang-impl/src/com/intellij/formatting/FormatterEx.java +++ b/platform/lang-impl/src/com/intellij/formatting/FormatterEx.java @@ -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, diff --git a/platform/lang-impl/src/com/intellij/formatting/FormatterImpl.java b/platform/lang-impl/src/com/intellij/formatting/FormatterImpl.java index fd153cfa9b80..7ac8fdfe1dbd 100644 --- a/platform/lang-impl/src/com/intellij/formatting/FormatterImpl.java +++ b/platform/lang-impl/src/com/intellij/formatting/FormatterImpl.java @@ -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) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java index 8357337c45e6..0855aef076ce 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/codeStyle/CodeStyleManagerImpl.java @@ -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);