diff --git a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/fixes/ImportQuickFix.kt b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/fixes/ImportQuickFix.kt index 0ebe5e2b1a3..e1fa04b2d4c 100644 --- a/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/fixes/ImportQuickFix.kt +++ b/idea/idea-fir/src/org/jetbrains/kotlin/idea/quickfix/fixes/ImportQuickFix.kt @@ -16,6 +16,7 @@ import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.search.GlobalSearchScope +import com.intellij.psi.util.PsiModificationTracker import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.caches.project.getModuleInfo import org.jetbrains.kotlin.idea.fir.api.fixes.diagnosticFixFactory @@ -79,6 +80,21 @@ internal class ImportQuickFix( return true } + private val modificationCountOnCreate: Long = PsiModificationTracker.SERVICE.getInstance(element.project).modificationCount + + /** + * This is a safe-guard against showing hint after the quickfix have been applied. + * + * Inspired by the org.jetbrains.kotlin.idea.quickfix.ImportFixBase.isOutdated + */ + private fun isOutdated(project: Project): Boolean { + return modificationCountOnCreate != PsiModificationTracker.SERVICE.getInstance(project).modificationCount + } + + override fun isAvailableImpl(project: Project, editor: Editor?, file: PsiFile): Boolean { + return super.isAvailableImpl(project, editor, file) && !isOutdated(project) + } + private class ImportQuestionAction( private val project: Project, private val editor: Editor,