Auto insert caret and selection to "after" file
This commit is contained in:
@@ -31,6 +31,7 @@ import kotlin.Function1;
|
|||||||
import kotlin.KotlinPackage;
|
import kotlin.KotlinPackage;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
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.lang.types.lang.KotlinBuiltIns;
|
||||||
import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase;
|
import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase;
|
||||||
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
|
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
|
||||||
|
import org.jetbrains.jet.testing.TagsTestDataUtil;
|
||||||
import org.jetbrains.jet.utils.UtilsPackage;
|
import org.jetbrains.jet.utils.UtilsPackage;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightFixtureTestCase {
|
public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightFixtureTestCase {
|
||||||
@@ -95,13 +98,13 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
|||||||
private void doFileTest(OverrideImplementMethodsHandler handler) {
|
private void doFileTest(OverrideImplementMethodsHandler handler) {
|
||||||
myFixture.configureByFile(getTestName(true) + ".kt");
|
myFixture.configureByFile(getTestName(true) + ".kt");
|
||||||
doOverrideImplement(handler, null);
|
doOverrideImplement(handler, null);
|
||||||
myFixture.checkResultByFile(getTestName(true) + ".kt.after");
|
checkResultByFile(getTestName(true) + ".kt.after");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doMultiFileTest(OverrideImplementMethodsHandler handler) {
|
private void doMultiFileTest(OverrideImplementMethodsHandler handler) {
|
||||||
myFixture.configureByFile(getTestName(true) + ".kt");
|
myFixture.configureByFile(getTestName(true) + ".kt");
|
||||||
doMultiOverrideImplement(handler);
|
doMultiOverrideImplement(handler);
|
||||||
myFixture.checkResultByFile(getTestName(true) + ".kt.after");
|
checkResultByFile(getTestName(true) + ".kt.after");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doDirectoryTest(OverrideImplementMethodsHandler handler) {
|
protected void doDirectoryTest(OverrideImplementMethodsHandler handler) {
|
||||||
@@ -112,7 +115,7 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
|||||||
myFixture.copyDirectoryToProject(getTestName(true), "");
|
myFixture.copyDirectoryToProject(getTestName(true), "");
|
||||||
myFixture.configureFromTempProjectFile("foo/Impl.kt");
|
myFixture.configureFromTempProjectFile("foo/Impl.kt");
|
||||||
doOverrideImplement(handler, memberToOverride);
|
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) {
|
private void doOverrideImplement(OverrideImplementMethodsHandler handler, @Nullable String memberToOverride) {
|
||||||
@@ -212,4 +215,15 @@ public abstract class AbstractOverrideImplementTest extends JetLightCodeInsightF
|
|||||||
throw UtilsPackage.rethrow(throwable);
|
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.LineMarkerInfo;
|
||||||
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
|
||||||
import com.intellij.lang.annotation.HighlightSeverity;
|
import com.intellij.lang.annotation.HighlightSeverity;
|
||||||
|
import com.intellij.openapi.editor.Editor;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -46,6 +47,17 @@ public class TagsTestDataUtil {
|
|||||||
return insertTagsInText(highlightPoints, text);
|
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) {
|
public static String insertTagsInText(List<? extends TagInfo> tags, String text) {
|
||||||
StringBuilder builder = new StringBuilder(text);
|
StringBuilder builder = new StringBuilder(text);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user