Don't build light classes when usages in Kotlin local scope requested
This commit is contained in:
+12
-9
@@ -45,6 +45,7 @@ import org.jetbrains.kotlin.idea.search.excludeKotlinSources
|
|||||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReadWriteAccessDetector
|
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReadWriteAccessDetector
|
||||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchOptions
|
||||||
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters
|
import org.jetbrains.kotlin.idea.search.ideaExtensions.KotlinReferencesSearchParameters
|
||||||
|
import org.jetbrains.kotlin.idea.search.isOnlyKotlinSearch
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction
|
import org.jetbrains.kotlin.idea.search.usagesSearch.dataClassComponentFunction
|
||||||
import org.jetbrains.kotlin.idea.search.usagesSearch.isImportUsage
|
import org.jetbrains.kotlin.idea.search.usagesSearch.isImportUsage
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
@@ -146,16 +147,18 @@ abstract class KotlinFindMemberUsagesHandler<T : KtNamedDeclaration>
|
|||||||
addTask { query.forEach(referenceProcessor) }
|
addTask { query.forEach(referenceProcessor) }
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: very bad code!! ReferencesSearch does not work correctly for constructors and annotation parameters
|
if (element is KtElement && !isOnlyKotlinSearch(options.searchScope)) {
|
||||||
val psiMethodScopeSearch = when {
|
// TODO: very bad code!! ReferencesSearch does not work correctly for constructors and annotation parameters
|
||||||
element is KtNamedFunction || element is KtParameter && element.dataClassComponentFunction() != null ->
|
val psiMethodScopeSearch = when {
|
||||||
options.searchScope.excludeKotlinSources()
|
element is KtNamedFunction || element is KtParameter && element.dataClassComponentFunction() != null ->
|
||||||
else -> options.searchScope
|
options.searchScope.excludeKotlinSources()
|
||||||
}
|
else -> options.searchScope
|
||||||
|
}
|
||||||
|
|
||||||
for (psiMethod in element.toLightMethods()) {
|
for (psiMethod in element.toLightMethods()) {
|
||||||
applyQueryFilters(element, options, MethodReferencesSearch.search(psiMethod, psiMethodScopeSearch, true)).let { query ->
|
applyQueryFilters(element, options, MethodReferencesSearch.search(psiMethod, psiMethodScopeSearch, true)).let { query ->
|
||||||
addTask { query.forEach(referenceProcessor) }
|
addTask { query.forEach(referenceProcessor) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user