AbstractFindUsagesTest: cleanup code

This commit is contained in:
Dmitry Gridin
2019-07-26 12:49:09 +03:00
parent 58f294a757
commit dbb9b3b6fd
@@ -74,11 +74,9 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase()
val caretElementClass = (if (!isPropertiesFile) { val caretElementClass = (if (!isPropertiesFile) {
val caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: ") val caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: ")
Class.forName(caretElementClassNames.single()) Class.forName(caretElementClassNames.single())
} } else if (isFindFileUsages) {
else if (isFindFileUsages) {
PropertiesFile::class.java PropertiesFile::class.java
} } else {
else {
Property::class.java Property::class.java
}) as Class<T> }) as Class<T>
@@ -100,7 +98,7 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase()
val ext = FileUtilRt.getExtension(name) val ext = FileUtilRt.getExtension(name)
ext in SUPPORTED_EXTENSIONS && !name.endsWith(".results.txt") ext in SUPPORTED_EXTENSIONS && !name.endsWith(".results.txt")
} }.orEmpty()
for (file in extraFiles) { for (file in extraFiles) {
myFixture.configureByFile(file.name) myFixture.configureByFile(file.name)
@@ -133,12 +131,10 @@ abstract class AbstractFindUsagesTest : KotlinLightCodeInsightFixtureTestCase()
if (navigationElement !== originalElement) { if (navigationElement !== originalElement) {
findUsagesAndCheckResults(mainFileText, prefix, rootPath, navigationElement, options, project) findUsagesAndCheckResults(mainFileText, prefix, rootPath, navigationElement, options, project)
} }
} } else {
else {
findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project) findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project)
} }
} } finally {
finally {
fixtureClasses.forEach { TestFixtureExtension.unloadFixture(it) } fixtureClasses.forEach { TestFixtureExtension.unloadFixture(it) }
} }
} }
@@ -206,11 +202,10 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
} }
val searchSuperDeclaration = val searchSuperDeclaration =
InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, CHECK_SUPER_METHODS_YES_NO_DIALOG + ":").firstOrNull() != "no" InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "$CHECK_SUPER_METHODS_YES_NO_DIALOG:").firstOrNull() != "no"
findUsages(caretElement, options, highlightingMode, project, searchSuperDeclaration) findUsages(caretElement, options, highlightingMode, project, searchSuperDeclaration)
} } finally {
finally {
ExpressionsOfTypeProcessor.testLog = null ExpressionsOfTypeProcessor.testLog = null
if (logList.size > 0) { if (logList.size > 0) {
log = logList.sorted().joinToString("\n") log = logList.sorted().joinToString("\n")
@@ -228,10 +223,8 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
val appendFileName = alwaysAppendFileName || usageFiles.size > 1 val appendFileName = alwaysAppendFileName || usageFiles.size > 1
val convertToString: (UsageInfo2UsageAdapter) -> String = { usageAdapter -> val convertToString: (UsageInfo2UsageAdapter) -> String = { usageAdapter ->
var groupAsString = groupingRules var groupAsString = groupingRules.joinToString(", ") { it.groupUsage(usageAdapter)?.getText(null) ?: "" }
.map { it.groupUsage(usageAdapter)?.getText(null) ?: "" } if (groupAsString.isNotEmpty()) {
.joinToString(", ")
if (!groupAsString.isEmpty()) {
groupAsString = "($groupAsString) " groupAsString = "($groupAsString) "
} }
@@ -264,8 +257,7 @@ internal fun <T : PsiElement> findUsagesAndCheckResults(
ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_PLAIN ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_PLAIN
findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project) findUsagesAndCheckResults(mainFileText, prefix, rootPath, caretElement, options, project)
} } finally {
finally {
ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_SMART ExpressionsOfTypeProcessor.mode = ExpressionsOfTypeProcessor.Mode.ALWAYS_SMART
} }
} }
@@ -279,17 +271,16 @@ internal fun findUsages(
searchSuperDeclaration: Boolean = true searchSuperDeclaration: Boolean = true
): Collection<UsageInfo> { ): Collection<UsageInfo> {
try { try {
val handler: FindUsagesHandler = when { val handler: FindUsagesHandler = if (targetElement is PsiMember)
targetElement is PsiMember ->
JavaFindUsagesHandler(targetElement, JavaFindUsagesHandlerFactory(project)) JavaFindUsagesHandler(targetElement, JavaFindUsagesHandlerFactory(project))
else -> { else {
if (!searchSuperDeclaration) { if (!searchSuperDeclaration) {
setDialogsResult(CHECK_SUPER_METHODS_YES_NO_DIALOG, Messages.NO) setDialogsResult(CHECK_SUPER_METHODS_YES_NO_DIALOG, Messages.NO)
} }
val findManagerImpl = FindManager.getInstance(project) as FindManagerImpl val findManagerImpl = FindManager.getInstance(project) as FindManagerImpl
findManagerImpl.findUsagesManager.getFindUsagesHandler(targetElement, false) ?: error("Cannot find handler for: $targetElement") findManagerImpl.findUsagesManager.getFindUsagesHandler(targetElement, false)
} ?: error("Cannot find handler for: $targetElement")
} }
@Suppress("NAME_SHADOWING") @Suppress("NAME_SHADOWING")
@@ -304,9 +295,8 @@ internal fun findUsages(
for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) { for (reference in handler.findReferencesToHighlight(psiElement, options.searchScope)) {
processor.process(UsageInfo(reference)) processor.process(UsageInfo(reference))
} }
} } else {
else { ProgressManager.getInstance().run(object : Task(project, "", false) {
ProgressManager.getInstance().run(object : Task(project, "",false) {
override fun isModal() = true override fun isModal() = true
override fun run(indicator: ProgressIndicator) { override fun run(indicator: ProgressIndicator) {
@@ -317,8 +307,7 @@ internal fun findUsages(
} }
return processor.results return processor.results
} } finally {
finally {
clearDialogsResults() clearDialogsResults()
} }
} }