Don't list symbols from test data in "Go to symbol"
#KT-4094 Fixed
This commit is contained in:
@@ -47,11 +47,8 @@ public class JetGotoSymbolContributor implements ChooseByNameContributor {
|
||||
public NavigationItem[] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) {
|
||||
GlobalSearchScope scope = includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project);
|
||||
|
||||
Collection<? extends NavigationItem> functions = StubIndex.getInstance().get(
|
||||
JetFunctionShortNameIndex.getInstance().getKey(), name, project, scope);
|
||||
|
||||
Collection<? extends NavigationItem> properties = StubIndex.getInstance().get(
|
||||
JetPropertyShortNameIndex.getInstance().getKey(), name, project, scope);
|
||||
Collection<? extends NavigationItem> functions = JetFunctionShortNameIndex.getInstance().get(name, project, scope);
|
||||
Collection<? extends NavigationItem> properties = JetPropertyShortNameIndex.getInstance().get(name, project, scope);
|
||||
|
||||
List<NavigationItem> items = new ArrayList<NavigationItem>(Collections2.filter(functions, Predicates.notNull()));
|
||||
items.addAll(properties);
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// RUNTIME_WITH_SOURCES
|
||||
// CHECK_BOX
|
||||
// SEARCH_TEXT: arrayListOf
|
||||
// REF: (in kotlin).arrayListOf(T)
|
||||
// REF: (in kotlin.KotlinPackage).arrayListOf(T...)
|
||||
@@ -0,0 +1,4 @@
|
||||
// RUNTIME
|
||||
// CHECK_BOX
|
||||
// SEARCH_TEXT: arrayListOf
|
||||
// REF: (in kotlin.KotlinPackage).arrayListOf(T...)
|
||||
@@ -0,0 +1,36 @@
|
||||
// RUNTIME_WITH_SOURCES
|
||||
// CHECK_BOX
|
||||
// SEARCH_TEXT: joinToString
|
||||
// REF: (for Array<out T> in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for BooleanArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for ByteArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for CharArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for DoubleArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for FloatArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for IntArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for Iterable<T> in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for LongArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for ShortArray in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (for Stream<T> in kotlin).joinToString(String,String,String,Int,String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(Iterable, String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(Object[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(Stream, String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(boolean[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(byte[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(char[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(double[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(float[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(int[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(long[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString$default(short[], String, String, String, int, String, int)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(Iterable<? extends T>, String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(Stream<? extends T>, String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(T[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(boolean[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(byte[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(char[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(double[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(float[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(int[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(long[], String, String, String, int, String)
|
||||
// REF: (in kotlin.KotlinPackage).joinToString(short[], String, String, String, int, String)
|
||||
@@ -84,6 +84,9 @@ public abstract class JetLightCodeInsightFixtureTestCase extends LightCodeInsigh
|
||||
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME")) {
|
||||
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
||||
}
|
||||
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME_WITH_SOURCES")) {
|
||||
return ProjectDescriptorWithStdlibSources.INSTANCE;
|
||||
}
|
||||
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "JS")) {
|
||||
return JetStdJSProjectDescriptor.INSTANCE;
|
||||
}
|
||||
|
||||
@@ -24,9 +24,10 @@ import com.intellij.ide.util.gotoByName.GotoClassModel2;
|
||||
import com.intellij.ide.util.gotoByName.GotoSymbolModel2;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import kotlin.Function1;
|
||||
import kotlin.KotlinPackage;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.InTextDirectivesUtils;
|
||||
@@ -42,12 +43,12 @@ import java.util.List;
|
||||
public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureTestCase {
|
||||
protected void doSymbolTest(String path) {
|
||||
myFixture.configureByFile(path);
|
||||
assertGotoSymbol(new GotoSymbolModel2(getProject()), getProject(), myFixture.getEditor());
|
||||
assertGotoSymbol(new GotoSymbolModel2(getProject()), myFixture.getEditor());
|
||||
}
|
||||
|
||||
protected void doClassTest(String path) {
|
||||
myFixture.configureByFile(path);
|
||||
assertGotoSymbol(new GotoClassModel2(getProject()), getProject(), myFixture.getEditor());
|
||||
assertGotoSymbol(new GotoClassModel2(getProject()), myFixture.getEditor());
|
||||
}
|
||||
|
||||
private String dirPath = null;
|
||||
@@ -77,13 +78,22 @@ public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureT
|
||||
return getTestName(true) + ".kt";
|
||||
}
|
||||
|
||||
private static void assertGotoSymbol(FilteringGotoByModel<Language> model, @NotNull Project project, @NotNull Editor editor) {
|
||||
List<String> searchTextList = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// SEARCH_TEXT:");
|
||||
private static void assertGotoSymbol(@NotNull FilteringGotoByModel<Language> model, @NotNull Editor editor) {
|
||||
String documentText = editor.getDocument().getText();
|
||||
List<String> searchTextList = InTextDirectivesUtils.findListWithPrefixes(documentText, "// SEARCH_TEXT:");
|
||||
Assert.assertFalse("There's no search text in test data file given. Use '// SEARCH_TEXT:' directive",
|
||||
searchTextList.isEmpty());
|
||||
|
||||
List<String> expectedReferences = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// REF:");
|
||||
boolean enableCheckbox = InTextDirectivesUtils.isDirectiveDefined(editor.getDocument().getText(), "// CHECK_BOX");
|
||||
List<String> expectedReferences = KotlinPackage.map(
|
||||
InTextDirectivesUtils.findLinesWithPrefixesRemoved(documentText, "// REF:"),
|
||||
new Function1<String, String>() {
|
||||
@Override
|
||||
public String invoke(String input) {
|
||||
return input.trim();
|
||||
}
|
||||
}
|
||||
);
|
||||
boolean enableCheckbox = InTextDirectivesUtils.isDirectiveDefined(documentText, "// CHECK_BOX");
|
||||
|
||||
String searchText = searchTextList.get(0);
|
||||
|
||||
|
||||
@@ -101,6 +101,21 @@ public class KotlinGotoTestGenerated extends AbstractKotlinGotoTest {
|
||||
doSymbolTest("idea/testData/navigation/gotoSymbol/properties.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stdLibArrayListOf.kt")
|
||||
public void testStdLibArrayListOf() throws Exception {
|
||||
doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stdLibArrayListOfNoSources.kt")
|
||||
public void testStdLibArrayListOfNoSources() throws Exception {
|
||||
doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("stdLibJoinToString.kt")
|
||||
public void testStdLibJoinToString() throws Exception {
|
||||
doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static Test suite() {
|
||||
|
||||
Reference in New Issue
Block a user