mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[formatter] simplification: changed context reformat api
This commit is contained in:
+2
-4
@@ -17,7 +17,6 @@ package com.intellij.psi.formatter.java;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.actions.ReformatCodeProcessor;
|
||||
import com.intellij.formatting.DiffInfoImpl;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
@@ -95,7 +94,7 @@ public abstract class AbstractJavaFormatterTest extends LightIdeaTestCase {
|
||||
void run(PsiFile psiFile, int startOffset, int endOffset);
|
||||
}
|
||||
|
||||
private static final Map<Action, TestFormatAction> ACTIONS = new EnumMap<Action, TestFormatAction>(Action.class);
|
||||
private static final Map<Action, TestFormatAction> ACTIONS = new EnumMap<>(Action.class);
|
||||
static {
|
||||
ACTIONS.put(Action.REFORMAT, new TestFormatAction() {
|
||||
@Override
|
||||
@@ -121,8 +120,7 @@ public abstract class AbstractJavaFormatterTest extends LightIdeaTestCase {
|
||||
public void run(PsiFile psiFile, int startOffset, int endOffset) {
|
||||
TextRange range = new TextRange(startOffset, endOffset);
|
||||
List<TextRange> ranges = ContainerUtil.newArrayList(range);
|
||||
DiffInfo info = new DiffInfoImpl(ranges);
|
||||
CodeStyleManager.getInstance(getProject()).reformatTextWithContext(psiFile, ranges, info);
|
||||
CodeStyleManager.getInstance(getProject()).reformatTextWithContext(psiFile, ranges, ranges);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ public abstract class CodeStyleManager {
|
||||
*/
|
||||
public abstract void reformatTextWithContext(@NotNull PsiFile file,
|
||||
@NotNull Collection<TextRange> ranges,
|
||||
@Nullable DiffInfo diffInfo) throws IncorrectOperationException;
|
||||
@Nullable Collection<TextRange> insertedRanges) throws IncorrectOperationException;
|
||||
|
||||
|
||||
public void reformatTextWithContext(@NotNull PsiFile file, @NotNull Collection<TextRange> ranges) throws IncorrectOperationException {
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.intellij.codeInsight.actions;
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightBundle;
|
||||
import com.intellij.formatting.DiffInfoImpl;
|
||||
import com.intellij.formatting.FormattingProgressTask;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -32,7 +31,6 @@ import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.ChangedRangesInfo;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.DiffInfo;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.diff.FilesTooBigForDiffException;
|
||||
@@ -40,8 +38,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
public class ReformatCodeProcessor extends AbstractLayoutCodeProcessor {
|
||||
@@ -123,11 +123,9 @@ public class ReformatCodeProcessor extends AbstractLayoutCodeProcessor {
|
||||
CaretVisualPositionKeeper caretPositionKeeper = new CaretVisualPositionKeeper(document);
|
||||
|
||||
if (processChangedTextOnly) {
|
||||
ChangedRangesInfo helper = FormatChangedTextUtil.getInstance().getChangedRangesInfo(file);
|
||||
if (helper != null) {
|
||||
List<TextRange> ranges = helper.allChangedRanges;
|
||||
DiffInfo info = helper.insertedRanges != null ? new DiffInfoImpl(helper.insertedRanges) : null;
|
||||
CodeStyleManager.getInstance(myProject).reformatTextWithContext(file, ranges, info);
|
||||
ChangedRangesInfo info = FormatChangedTextUtil.getInstance().getChangedRangesInfo(file);
|
||||
if (info != null) {
|
||||
CodeStyleManager.getInstance(myProject).reformatTextWithContext(file, info.allChangedRanges, info.insertedRanges);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -56,7 +56,7 @@ interface BlockProcessor {
|
||||
fun processCompositeBlock(block: Block)
|
||||
}
|
||||
|
||||
class DiffInfoImpl(private val insertedRanges: List<TextRange>): DiffInfo {
|
||||
class DiffInfoImpl(private val insertedRanges: Collection<TextRange>): DiffInfo {
|
||||
override fun isOnInsertedLine(offset: Int) = insertedRanges.find { it.contains(offset) } != null
|
||||
}
|
||||
|
||||
|
||||
+6
-2
@@ -164,8 +164,12 @@ public class CodeStyleManagerImpl extends CodeStyleManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reformatTextWithContext(@NotNull PsiFile file, @NotNull Collection<TextRange> ranges, @Nullable DiffInfo info) throws IncorrectOperationException {
|
||||
FormatTextRanges formatRanges = new FormatTextRanges(info);
|
||||
public void reformatTextWithContext(@NotNull PsiFile file,
|
||||
@NotNull Collection<TextRange> ranges,
|
||||
@Nullable Collection<TextRange> insertedRanges) throws IncorrectOperationException
|
||||
{
|
||||
DiffInfo diffInfo = insertedRanges != null ? new DiffInfoImpl(insertedRanges) : null;
|
||||
FormatTextRanges formatRanges = new FormatTextRanges(diffInfo);
|
||||
ranges.forEach((range) -> formatRanges.add(range, true));
|
||||
reformatText(file, formatRanges, null, true);
|
||||
}
|
||||
|
||||
+1
-2
@@ -25,7 +25,6 @@ import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
import com.intellij.psi.codeStyle.DiffInfo;
|
||||
import com.intellij.psi.codeStyle.Indent;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ThrowableRunnable;
|
||||
@@ -75,7 +74,7 @@ public class MockCodeStyleManager extends CodeStyleManager {
|
||||
@Override
|
||||
public void reformatTextWithContext(@NotNull PsiFile file,
|
||||
@NotNull Collection<TextRange> ranges,
|
||||
@Nullable DiffInfo diffInfo) throws IncorrectOperationException {
|
||||
@Nullable Collection<TextRange> insertedRanges) throws IncorrectOperationException {
|
||||
reformatText(file, ranges);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user