From e59b621931648fa82233bb42209bee47ebc1d6a4 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 31 Jul 2015 22:01:20 +0300 Subject: [PATCH] DeprecatedSymbolUsageInWholeProjectFix uses ReferenceSearch instead of Find Usages --- .../DeprecatedSymbolUsageInWholeProjectFix.kt | 45 +++---------------- 1 file changed, 5 insertions(+), 40 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt index 9d69b1f6a4d..520642729b5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/DeprecatedSymbolUsageInWholeProjectFix.kt @@ -17,26 +17,21 @@ package org.jetbrains.kotlin.idea.quickfix import com.intellij.codeInsight.intention.IntentionAction -import com.intellij.find.findUsages.FindUsagesOptions import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.editor.Editor import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.progress.Task import com.intellij.openapi.project.Project -import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope -import com.intellij.usageView.UsageInfo -import com.intellij.util.CommonProcessors +import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.findUsages.KotlinFindUsagesHandlerFactory -import org.jetbrains.kotlin.idea.findUsages.KotlinFunctionFindUsagesOptions -import org.jetbrains.kotlin.idea.findUsages.KotlinPropertyFindUsagesOptions +import org.jetbrains.kotlin.idea.references.JetSimpleNameReference import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope import org.jetbrains.kotlin.idea.util.application.executeCommand @@ -87,45 +82,15 @@ public class DeprecatedSymbolUsageInWholeProjectFix( override fun run(indicator: ProgressIndicator) { val usages = runReadAction { val searchScope = JetSourceFilterScope.kotlinSources(GlobalSearchScope.projectScope(project), project) - val findUsagesHandler = KotlinFindUsagesHandlerFactory(project).createFindUsagesHandlerNoQuestions(psiElement) - val processor = CommonProcessors.CollectProcessor() - val options = createFindUsagesOptions(psiElement, searchScope, project) - findUsagesHandler.processElementUsages(psiElement, processor, options) - processor.getResults().map { it.getElement() }.filterIsInstance() + ReferencesSearch.search(psiElement, searchScope) + .filterIsInstance() + .map { ref -> ref.expression } } replaceUsages(project, usages, replacement) } }) } - private fun createFindUsagesOptions(element: PsiElement, searchScope: GlobalSearchScope, project: Project): FindUsagesOptions { - val options: FindUsagesOptions = when (element) { - is JetNamedFunction -> { - with(KotlinFunctionFindUsagesOptions(project)) { - isSkipImportStatements = true - isOverridingMethods = false - isImplementingMethods = false - isIncludeInherited = false - isIncludeOverloadUsages = false - this - } - } - - is JetProperty -> { - with(KotlinPropertyFindUsagesOptions(project)) { - isSkipImportStatements = true - this - } - } - - else -> throw IllegalArgumentException(element.toString()) //TODO? - } - - options.searchScope = searchScope - options.isSearchForTextOccurrences = false - return options - } - private fun replaceUsages(project: Project, usages: Collection, replacement: ReplaceWithAnnotationAnalyzer.ReplacementExpression) { UIUtil.invokeLaterIfNeeded { project.executeCommand(getText()) {