Move indent detection into background

This commit is contained in:
Yaroslav Lepenkin
2016-05-30 21:08:35 +03:00
parent a1f468f406
commit 98452b0387
18 changed files with 236 additions and 39 deletions
@@ -15,7 +15,7 @@
*/
package com.intellij.codeInsight.editorActions;
import com.intellij.psi.codeStyle.autodetect.DetectableIndentOptionsProvider;
import com.intellij.psi.codeStyle.DetectableIndentOptionsProvider;
import com.intellij.testFramework.EditorTestUtil;
import com.intellij.testFramework.LightCodeInsightTestCase;
@@ -15,7 +15,9 @@
*/
package com.intellij.psi.codeStyle.autodetect;
import com.intellij.formatting.*;
import com.intellij.formatting.Block;
import com.intellij.formatting.FormattingModel;
import com.intellij.formatting.FormattingModelBuilder;
import com.intellij.lang.LanguageFormatting;
import com.intellij.openapi.editor.Document;
import com.intellij.psi.PsiDocumentManager;
@@ -61,7 +63,7 @@ public abstract class AbstractNewLineBlocksIteratorTest extends LightPlatformCod
Document document = PsiDocumentManager.getInstance(getProject()).getDocument(myFile);
Assert.assertNotNull(document);
return new NewLineBlocksIterator(root, document);
return new NewLineBlocksIterator(root, document, null);
}
}
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.psi.codeStyle.DetectableIndentOptionsProvider;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
@@ -19,6 +19,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.codeStyle.DetectableIndentOptionsProvider;
import com.intellij.psi.codeStyle.FileIndentOptionsProvider;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
@@ -65,7 +65,7 @@ public class FormatterBasedLineInfoBuilderTest extends LightPlatformCodeInsightT
TestFormattingModel model = new TestFormattingModel(text);
Document document = model.getDocument();
TestBlock block = new FormattingModelXmlReader(model).readTestBlock(getTestDataPath(), file);
FormatterBasedLineIndentInfoBuilder builder = new FormatterBasedLineIndentInfoBuilder(document, block);
FormatterBasedLineIndentInfoBuilder builder = new FormatterBasedLineIndentInfoBuilder(document, block, indicator);
return builder.build();
}
}
@@ -153,7 +153,7 @@ public class JavaAutoDetectIndentTest extends AbstractIndentAutoDetectionTest {
FormattingModel model = builder.createModel(myFile, CodeStyleSettingsManager.getSettings(getProject()));
Block block = model.getRootBlock();
List<LineIndentInfo> list = new FormatterBasedLineIndentInfoBuilder(document, block).build();
List<LineIndentInfo> list = new FormatterBasedLineIndentInfoBuilder(document, block, null).build();
Assert.assertEquals(list.size(), spacesForLine.length);
for (int i = 0; i < spacesForLine.length; i++) {
@@ -32,7 +32,6 @@ import com.intellij.pom.java.LanguageLevel;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
import com.intellij.psi.codeStyle.*;
import com.intellij.psi.codeStyle.autodetect.DetectableIndentOptionsProvider;
import com.intellij.testFramework.LightIdeaTestCase;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.containers.ContainerUtil;