void (@NotNull HighlightInfo info, @NotNull Editor editor, @NotNull PsiFile file, @NotNull ProperTextRange visibleRange) { ApplicationManager.getApplication().assertIsNonDispatchThread(); ApplicationManager.getApplication().assertReadAccessAllowed(); if (!enabled) { return; } PsiReference reference = info.unresolvedReference; if (reference == null) return; PsiElement refElement = reference.getElement(); Future<?> job = refElement.getUserData(JOB); if (job != null) { return; } if (info.isUnresolvedReferenceQuickFixesComputed()) return; job = ForkJoinPool.commonPool().submit(ThreadContext.captureThreadContext(() -> ((ApplicationImpl)ApplicationManager.getApplication()).executeByImpatientReader( () -> ProgressIndicatorUtils.runInReadActionWithWriteActionPriority( () -> registerReferenceFixes(info, editor, file, reference, visibleRange), new DaemonProgressIndicator()))), null); refElement.putUserData(JOB, job); }