Perform paste reference resolve in smart mode
^EA-226712 Fixed
This commit is contained in:
committed by
Vladimir Dolzhenko
parent
b00ce872ea
commit
698f51079f
@@ -42,14 +42,11 @@ import org.jetbrains.kotlin.idea.core.util.range
|
|||||||
import org.jetbrains.kotlin.idea.core.util.start
|
import org.jetbrains.kotlin.idea.core.util.start
|
||||||
import org.jetbrains.kotlin.idea.imports.importableFqName
|
import org.jetbrains.kotlin.idea.imports.importableFqName
|
||||||
import org.jetbrains.kotlin.idea.references.*
|
import org.jetbrains.kotlin.idea.references.*
|
||||||
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
|
import org.jetbrains.kotlin.idea.util.*
|
||||||
import org.jetbrains.kotlin.idea.util.ProgressIndicatorUtils
|
|
||||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||||
import org.jetbrains.kotlin.idea.util.application.invokeLater
|
import org.jetbrains.kotlin.idea.util.application.invokeLater
|
||||||
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
|
import org.jetbrains.kotlin.idea.util.application.isUnitTestMode
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.idea.util.getFileResolutionScope
|
|
||||||
import org.jetbrains.kotlin.idea.util.getSourceRoot
|
|
||||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||||
import org.jetbrains.kotlin.kdoc.psi.api.KDocElement
|
import org.jetbrains.kotlin.kdoc.psi.api.KDocElement
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -488,6 +485,7 @@ class KotlinCopyPasteReferenceProcessor : CopyPastePostProcessor<BasicKotlinRefe
|
|||||||
.withDocumentsCommitted(project)
|
.withDocumentsCommitted(project)
|
||||||
.cancelWith(indicator)
|
.cancelWith(indicator)
|
||||||
.expireWith(project)
|
.expireWith(project)
|
||||||
|
.inSmartMode(project)
|
||||||
.submit(AppExecutorUtil.getAppExecutorService())
|
.submit(AppExecutorUtil.getAppExecutorService())
|
||||||
|
|
||||||
private fun buildDummySourceScope(
|
private fun buildDummySourceScope(
|
||||||
@@ -515,8 +513,9 @@ class KotlinCopyPasteReferenceProcessor : CopyPastePostProcessor<BasicKotlinRefe
|
|||||||
|
|
||||||
fun joinLines(items: Collection<String>) = items.joinToString("\n")
|
fun joinLines(items: Collection<String>) = items.joinToString("\n")
|
||||||
|
|
||||||
|
val project = file.project
|
||||||
val dummyImportsFile = runReadAction {
|
val dummyImportsFile = runReadAction {
|
||||||
KtPsiFactory(file.project)
|
KtPsiFactory(project)
|
||||||
.createAnalyzableFile(
|
.createAnalyzableFile(
|
||||||
"dummy-imports.kt",
|
"dummy-imports.kt",
|
||||||
"package $fakePkgName\n" +
|
"package $fakePkgName\n" +
|
||||||
@@ -526,7 +525,7 @@ class KotlinCopyPasteReferenceProcessor : CopyPastePostProcessor<BasicKotlinRefe
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val dummyFileImports = runReadAction {
|
val dummyFileImports = project.runReadActionInSmartMode {
|
||||||
dummyImportsFile.collectDescendantsOfType<KtImportDirective>().mapNotNull { directive ->
|
dummyImportsFile.collectDescendantsOfType<KtImportDirective>().mapNotNull { directive ->
|
||||||
val importedReference =
|
val importedReference =
|
||||||
directive.importedReference?.getQualifiedElementSelector()?.mainReference?.resolve() as? KtNamedDeclaration
|
directive.importedReference?.getQualifiedElementSelector()?.mainReference?.resolve() as? KtNamedDeclaration
|
||||||
|
|||||||
Reference in New Issue
Block a user