Auto insert caret and selection to "after" file
This commit is contained in:
@@ -31,6 +31,7 @@ import kotlin.Function1;
|
||||
import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
@@ -39,9 +40,11 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase;
|
||||
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
|
||||
import org.jetbrains.jet.testing.TagsTestDataUtil;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightFixtureTestCase {
|
||||
@@ -95,13 +98,13 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
||||
private void doFileTest(OverrideImplementMethodsHandler handler) {
|
||||
myFixture.configureByFile(getTestName(true) + ".kt");
|
||||
doOverrideImplement(handler, null);
|
||||
myFixture.checkResultByFile(getTestName(true) + ".kt.after");
|
||||
checkResultByFile(getTestName(true) + ".kt.after");
|
||||
}
|
||||
|
||||
private void doMultiFileTest(OverrideImplementMethodsHandler handler) {
|
||||
myFixture.configureByFile(getTestName(true) + ".kt");
|
||||
doMultiOverrideImplement(handler);
|
||||
myFixture.checkResultByFile(getTestName(true) + ".kt.after");
|
||||
checkResultByFile(getTestName(true) + ".kt.after");
|
||||
}
|
||||
|
||||
protected void doDirectoryTest(OverrideImplementMethodsHandler handler) {
|
||||
@@ -112,7 +115,7 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
||||
myFixture.copyDirectoryToProject(getTestName(true), "");
|
||||
myFixture.configureFromTempProjectFile("foo/Impl.kt");
|
||||
doOverrideImplement(handler, memberToOverride);
|
||||
myFixture.checkResultByFile(getTestName(true) + "/foo/Impl.kt.after");
|
||||
checkResultByFile(getTestName(true) + "/foo/Impl.kt.after");
|
||||
}
|
||||
|
||||
private void doOverrideImplement(OverrideImplementMethodsHandler handler, @Nullable String memberToOverride) {
|
||||
@@ -212,4 +215,15 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
||||
throw UtilsPackage.rethrow(throwable);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkResultByFile(String fileName) {
|
||||
try {
|
||||
myFixture.checkResultByFile(fileName);
|
||||
}
|
||||
catch (AssertionError error) {
|
||||
JetTestUtils.assertEqualsToFile(
|
||||
new File(myFixture.getTestDataPath(), fileName),
|
||||
TagsTestDataUtil.generateTextWithCaretAndSelection(myFixture.getEditor()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import com.google.common.collect.Ordering;
|
||||
import com.intellij.codeInsight.daemon.LineMarkerInfo;
|
||||
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||
import com.intellij.lang.annotation.HighlightSeverity;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
@@ -46,6 +47,17 @@ public class TagsTestDataUtil {
|
||||
return insertTagsInText(highlightPoints, text);
|
||||
}
|
||||
|
||||
public static String generateTextWithCaretAndSelection(@NotNull Editor editor) {
|
||||
List<TagInfo> points = Lists.newArrayList();
|
||||
points.add(new TagInfo<String>(editor.getCaretModel().getOffset(), true, "caret"));
|
||||
if (editor.getSelectionModel().hasSelection()) {
|
||||
points.add(new TagInfo<String>(editor.getSelectionModel().getSelectionStart(), true, "selection"));
|
||||
points.add(new TagInfo<String>(editor.getSelectionModel().getSelectionEnd(), false, "selection"));
|
||||
}
|
||||
|
||||
return insertTagsInText(points, editor.getDocument().getText());
|
||||
}
|
||||
|
||||
public static String insertTagsInText(List<? extends TagInfo> tags, String text) {
|
||||
StringBuilder builder = new StringBuilder(text);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user