Calculate autoimport candidates in daemon thread when import fix is created, not in EDT
This commit is contained in:
@@ -262,7 +262,9 @@ internal class ImportFix(expression: KtSimpleNameExpression) : OrdinaryImportFix
|
|||||||
|
|
||||||
companion object MyFactory : Factory() {
|
companion object MyFactory : Factory() {
|
||||||
override fun createAction(diagnostic: Diagnostic) =
|
override fun createAction(diagnostic: Diagnostic) =
|
||||||
(diagnostic.psiElement as? KtSimpleNameExpression)?.let { ImportFix(it) }
|
(diagnostic.psiElement as? KtSimpleNameExpression)?.let {
|
||||||
|
ImportFix(it).apply { computeSuggestions() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,7 +289,9 @@ internal class ImportConstructorReferenceFix(expression: KtSimpleNameExpression)
|
|||||||
|
|
||||||
companion object MyFactory : Factory() {
|
companion object MyFactory : Factory() {
|
||||||
override fun createAction(diagnostic: Diagnostic) =
|
override fun createAction(diagnostic: Diagnostic) =
|
||||||
(diagnostic.psiElement as? KtSimpleNameExpression)?.let(::ImportConstructorReferenceFix)
|
(diagnostic.psiElement as? KtSimpleNameExpression)?.let {
|
||||||
|
ImportConstructorReferenceFix(it).apply { computeSuggestions() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,7 +302,9 @@ internal class InvokeImportFix(expression: KtExpression) : OrdinaryImportFixBase
|
|||||||
|
|
||||||
companion object MyFactory : Factory() {
|
companion object MyFactory : Factory() {
|
||||||
override fun createAction(diagnostic: Diagnostic) =
|
override fun createAction(diagnostic: Diagnostic) =
|
||||||
(diagnostic.psiElement as? KtExpression)?.let(::InvokeImportFix)
|
(diagnostic.psiElement as? KtExpression)?.let {
|
||||||
|
InvokeImportFix(it).apply { computeSuggestions() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,7 +333,7 @@ internal open class ArrayAccessorImportFix(
|
|||||||
|
|
||||||
val element = diagnostic.psiElement
|
val element = diagnostic.psiElement
|
||||||
if (element is KtArrayAccessExpression && element.arrayExpression != null) {
|
if (element is KtArrayAccessExpression && element.arrayExpression != null) {
|
||||||
return ArrayAccessorImportFix(element, importName(diagnostic).singletonList(), true)
|
return ArrayAccessorImportFix(element, importName(diagnostic).singletonList(), true).apply { computeSuggestions() }
|
||||||
}
|
}
|
||||||
|
|
||||||
return null
|
return null
|
||||||
@@ -364,7 +370,7 @@ internal class DelegateAccessorsImportFix(
|
|||||||
|
|
||||||
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtExpression>? {
|
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtExpression>? {
|
||||||
return (diagnostic.psiElement as? KtExpression)?.let {
|
return (diagnostic.psiElement as? KtExpression)?.let {
|
||||||
DelegateAccessorsImportFix(it, importNames(diagnostic.singletonList()), false)
|
DelegateAccessorsImportFix(it, importNames(diagnostic.singletonList()), false).apply { computeSuggestions() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,7 +404,7 @@ internal class ComponentsImportFix(
|
|||||||
|
|
||||||
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtExpression>? {
|
override fun createAction(diagnostic: Diagnostic): KotlinQuickFixAction<KtExpression>? {
|
||||||
return (diagnostic.psiElement as? KtExpression)?.let {
|
return (diagnostic.psiElement as? KtExpression)?.let {
|
||||||
ComponentsImportFix(it, importNames(diagnostic.singletonList()), false)
|
ComponentsImportFix(it, importNames(diagnostic.singletonList()), false).apply { computeSuggestions() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -467,7 +473,9 @@ internal class ImportMemberFix(expression: KtSimpleNameExpression) : ImportFixBa
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object MyFactory : Factory() {
|
companion object MyFactory : Factory() {
|
||||||
override fun createAction(diagnostic: Diagnostic) = (diagnostic.psiElement as? KtSimpleNameExpression)?.let(::ImportMemberFix)
|
override fun createAction(diagnostic: Diagnostic) = (diagnostic.psiElement as? KtSimpleNameExpression)?.let {
|
||||||
|
ImportMemberFix(it).apply { computeSuggestions() }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -552,7 +560,7 @@ internal class ImportForMismatchingArgumentsFix(
|
|||||||
//TODO: not only KtCallExpression
|
//TODO: not only KtCallExpression
|
||||||
val callExpression = diagnostic.psiElement.getStrictParentOfType<KtCallExpression>() ?: return null
|
val callExpression = diagnostic.psiElement.getStrictParentOfType<KtCallExpression>() ?: return null
|
||||||
val nameExpression = callExpression.calleeExpression as? KtNameReferenceExpression ?: return null
|
val nameExpression = callExpression.calleeExpression as? KtNameReferenceExpression ?: return null
|
||||||
return ImportForMismatchingArgumentsFix(nameExpression)
|
return ImportForMismatchingArgumentsFix(nameExpression).apply { computeSuggestions() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user