ignore all optimizations for non-local editors (remdev|CWM) to quick-n-dirty workaround IJPL-163871 Intentions sometimes don't appear in Remote Dev and Code With Me

(cherry picked from commit 6f223d96cf6d194f3bdaa5ba60cc2148fc8580e5)

IJ-CR-148644

GitOrigin-RevId: 4adad7b54da131a0191f69ee21bc15988881572d
This commit is contained in:
Alexey Kudravtsev
2024-11-05 17:02:39 +01:00
committed by intellij-monorepo-bot
parent 07f1fbf5af
commit 3b8e5851a2

View File

@@ -6,6 +6,7 @@ import com.intellij.codeInsight.daemon.HighlightDisplayKey;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.quickfix.UnresolvedReferenceQuickFixProvider;
import com.intellij.codeInsight.quickfix.UnresolvedReferenceQuickFixUpdater;
import com.intellij.codeWithMe.ClientId;
import com.intellij.concurrency.ThreadContext;
import com.intellij.lang.annotation.AnnotationBuilder;
import com.intellij.lang.annotation.HighlightSeverity;
@@ -13,6 +14,7 @@ import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.application.impl.ApplicationImpl;
import com.intellij.openapi.editor.ClientEditorManager;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.progress.ProgressManager;
@@ -110,6 +112,16 @@ public final class UnresolvedReferenceQuickFixUpdaterImpl implements UnresolvedR
unresolvedInfos.add(info);
return true;
});
if (!ClientId.isLocal(ClientEditorManager.getClientId(editor))) {
// for non-local editor its visible area is unreliable, so ignore all optimizations there
// (see IJPL-163871 Intentions sometimes don't appear in Remote Dev and Code With Me)
DaemonCodeAnalyzerEx.processHighlights(document, project, HighlightSeverity.ERROR, 0, document.getTextLength(), info -> {
if (info.isUnresolvedReference()) {
unresolvedInfos.add(info);
}
return true;
});
}
for (HighlightInfo info : unresolvedInfos) {
startUnresolvedRefsJob(info, editor, file, visibleRange);
}