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) {
|
public NavigationItem[] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) {
|
||||||
GlobalSearchScope scope = includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project);
|
GlobalSearchScope scope = includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project);
|
||||||
|
|
||||||
Collection<? extends NavigationItem> functions = StubIndex.getInstance().get(
|
Collection<? extends NavigationItem> functions = JetFunctionShortNameIndex.getInstance().get(name, project, scope);
|
||||||
JetFunctionShortNameIndex.getInstance().getKey(), name, project, scope);
|
Collection<? extends NavigationItem> properties = JetPropertyShortNameIndex.getInstance().get(name, project, scope);
|
||||||
|
|
||||||
Collection<? extends NavigationItem> properties = StubIndex.getInstance().get(
|
|
||||||
JetPropertyShortNameIndex.getInstance().getKey(), name, project, scope);
|
|
||||||
|
|
||||||
List<NavigationItem> items = new ArrayList<NavigationItem>(Collections2.filter(functions, Predicates.notNull()));
|
List<NavigationItem> items = new ArrayList<NavigationItem>(Collections2.filter(functions, Predicates.notNull()));
|
||||||
items.addAll(properties);
|
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")) {
|
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME")) {
|
||||||
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
||||||
}
|
}
|
||||||
|
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME_WITH_SOURCES")) {
|
||||||
|
return ProjectDescriptorWithStdlibSources.INSTANCE;
|
||||||
|
}
|
||||||
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "JS")) {
|
else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "JS")) {
|
||||||
return JetStdJSProjectDescriptor.INSTANCE;
|
return JetStdJSProjectDescriptor.INSTANCE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,10 @@ import com.intellij.ide.util.gotoByName.GotoClassModel2;
|
|||||||
import com.intellij.ide.util.gotoByName.GotoSymbolModel2;
|
import com.intellij.ide.util.gotoByName.GotoSymbolModel2;
|
||||||
import com.intellij.lang.Language;
|
import com.intellij.lang.Language;
|
||||||
import com.intellij.openapi.editor.Editor;
|
import com.intellij.openapi.editor.Editor;
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
import com.intellij.testFramework.UsefulTestCase;
|
import com.intellij.testFramework.UsefulTestCase;
|
||||||
|
import kotlin.Function1;
|
||||||
|
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.InTextDirectivesUtils;
|
import org.jetbrains.jet.InTextDirectivesUtils;
|
||||||
@@ -42,12 +43,12 @@ import java.util.List;
|
|||||||
public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureTestCase {
|
public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureTestCase {
|
||||||
protected void doSymbolTest(String path) {
|
protected void doSymbolTest(String path) {
|
||||||
myFixture.configureByFile(path);
|
myFixture.configureByFile(path);
|
||||||
assertGotoSymbol(new GotoSymbolModel2(getProject()), getProject(), myFixture.getEditor());
|
assertGotoSymbol(new GotoSymbolModel2(getProject()), myFixture.getEditor());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doClassTest(String path) {
|
protected void doClassTest(String path) {
|
||||||
myFixture.configureByFile(path);
|
myFixture.configureByFile(path);
|
||||||
assertGotoSymbol(new GotoClassModel2(getProject()), getProject(), myFixture.getEditor());
|
assertGotoSymbol(new GotoClassModel2(getProject()), myFixture.getEditor());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String dirPath = null;
|
private String dirPath = null;
|
||||||
@@ -77,13 +78,22 @@ public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureT
|
|||||||
return getTestName(true) + ".kt";
|
return getTestName(true) + ".kt";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertGotoSymbol(FilteringGotoByModel<Language> model, @NotNull Project project, @NotNull Editor editor) {
|
private static void assertGotoSymbol(@NotNull FilteringGotoByModel<Language> model, @NotNull Editor editor) {
|
||||||
List<String> searchTextList = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// SEARCH_TEXT:");
|
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",
|
Assert.assertFalse("There's no search text in test data file given. Use '// SEARCH_TEXT:' directive",
|
||||||
searchTextList.isEmpty());
|
searchTextList.isEmpty());
|
||||||
|
|
||||||
List<String> expectedReferences = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// REF:");
|
List<String> expectedReferences = KotlinPackage.map(
|
||||||
boolean enableCheckbox = InTextDirectivesUtils.isDirectiveDefined(editor.getDocument().getText(), "// CHECK_BOX");
|
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);
|
String searchText = searchTextList.get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,21 @@ public class KotlinGotoTestGenerated extends AbstractKotlinGotoTest {
|
|||||||
doSymbolTest("idea/testData/navigation/gotoSymbol/properties.kt");
|
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() {
|
public static Test suite() {
|
||||||
|
|||||||
Reference in New Issue
Block a user