From 3b8e5851a2bbea85e2cee1d1aa5060b3ad4e5433 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 5 Nov 2024 17:02:39 +0100 Subject: [PATCH] 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 --- .../impl/UnresolvedReferenceQuickFixUpdaterImpl.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/UnresolvedReferenceQuickFixUpdaterImpl.java b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/UnresolvedReferenceQuickFixUpdaterImpl.java index df7dcb8fc290..cf036e78e528 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/UnresolvedReferenceQuickFixUpdaterImpl.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/UnresolvedReferenceQuickFixUpdaterImpl.java @@ -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); }