Finding usages (which have references) in text when plaint text occurrences are not searched.

This commit is contained in:
Evgeny Gerashchenko
2014-12-15 19:20:42 +03:00
parent 834725b260
commit 6abe5a425c
6 changed files with 25 additions and 3 deletions
@@ -55,7 +55,7 @@ public data class UsagesSearchLocation(
val inCode: Boolean = true,
val inComments: Boolean = false,
val inStrings: Boolean = false,
val inPlainText: Boolean = false
val inPlainText: Boolean = true
) {
class object {
public val DEFAULT: UsagesSearchLocation = UsagesSearchLocation()
@@ -156,7 +156,7 @@ public class KotlinPsiSearchHelper(private val project: Project): PsiSearchHelpe
public fun processFilesWithText(item: UsagesSearchRequestItem, consumer: Processor<PsiReference>): Boolean {
return item.words.all { word ->
val textProcessor = ResultTextProcessorImpl(item, consumer)
processElementsWithWord(textProcessor, item.target.effectiveScope, word, UsageSearchContext.IN_CODE, true)
processElementsWithWord(textProcessor, item.target.effectiveScope, word, item.target.location.searchContext, true)
}
}
}
@@ -0,0 +1,13 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages
package server
open class <caret>Server {
class object {
val NAME = "Server"
}
open fun work() {
println("Server")
}
}
@@ -0,0 +1 @@
<foo bar="server.Server"></foo>
@@ -0,0 +1 @@
Unclassified usage (1: 18) <foo bar="server.Server"></foo>
@@ -75,6 +75,7 @@ public abstract class AbstractJetFindUsagesTest extends JetLightCodeInsightFixtu
public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) {
KotlinClassFindUsagesOptions options = new KotlinClassFindUsagesOptions(project);
options.isUsages = false;
options.isSearchForTextOccurrences = false;
options.setSearchConstructorUsages(false);
for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) {
if (parseCommonOptions(options, s)) continue;
@@ -303,7 +304,7 @@ public abstract class AbstractJetFindUsagesTest extends JetLightCodeInsightFixtu
if (!name.startsWith(prefix) || name.equals(mainFileName)) return false;
String ext = name.substring(name.lastIndexOf('.') + 1);
return ext.equals("kt") || ext.equals("java");
return ext.equals("kt") || ext.equals("java") || ext.equals("xml");
}
}
);
@@ -141,6 +141,12 @@ public class JetFindUsagesTestGenerated extends AbstractJetFindUsagesTest {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/findUsages/kotlin/findClassUsages"), Pattern.compile("^(.+)\\.0\\.kt$"), true);
}
@TestMetadata("classUsedInTextAsRef.0.kt")
public void testClassUsedInTextAsRef() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findClassUsages/classUsedInTextAsRef.0.kt");
doTest(fileName);
}
@TestMetadata("javaClassAllUsages.0.kt")
public void testJavaClassAllUsages() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/findUsages/kotlin/findClassUsages/javaClassAllUsages.0.kt");