From 847be5e2fed3f3c3f15291a877aa2d33d7cb7daf Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Thu, 12 Feb 2026 14:24:27 +0100 Subject: [PATCH] refactor [editor]: do not expose public setter GitOrigin-RevId: fe457de392fed3077a4248d2e872fe2a58eabc43 --- .../impl/DaemonAnnotatorsRespondToChangesTest.java | 2 +- .../impl/DaemonHighlightVisitorRespondToChangesTest.java | 2 +- .../impl/DaemonInspectionsRespondToChangesTest.java | 2 +- .../impl/DaemonLineMarkersRespondToChangesTest.java | 2 +- .../daemon/impl/DaemonRespondToChangesTest.java | 4 ++-- .../codeInsight/daemon/impl/FileStatusMapTest.java | 2 +- .../intellij/codeInsight/daemon/impl/LightBulbTest.java | 2 +- .../intellij/codeInsight/daemon/impl/EditorTracker.kt | 9 +++++---- .../codeInsight/daemon/impl/EditorTrackerImpl.kt | 6 ++++++ .../junit5/highlighting/src/fixture/fixtures.kt | 4 ++-- 10 files changed, 21 insertions(+), 14 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonAnnotatorsRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonAnnotatorsRespondToChangesTest.java index f5a47a090b33..cb04df4a915c 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonAnnotatorsRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonAnnotatorsRespondToChangesTest.java @@ -141,7 +141,7 @@ public class DaemonAnnotatorsRespondToChangesTest extends DaemonAnalyzerTestCase } private void setActiveEditors(Editor @NotNull ... editors) { - EditorTracker.Companion.getInstance(myProject).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonHighlightVisitorRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonHighlightVisitorRespondToChangesTest.java index 47f1edfd76ec..809e97907009 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonHighlightVisitorRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonHighlightVisitorRespondToChangesTest.java @@ -121,7 +121,7 @@ public class DaemonHighlightVisitorRespondToChangesTest extends DaemonAnalyzerTe } private void setActiveEditors(Editor @NotNull ... editors) { - EditorTracker.Companion.getInstance(myProject).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonInspectionsRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonInspectionsRespondToChangesTest.java index 236cf63645f5..2ea8c82a8610 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonInspectionsRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonInspectionsRespondToChangesTest.java @@ -161,7 +161,7 @@ public class DaemonInspectionsRespondToChangesTest extends DaemonAnalyzerTestCas } private void setActiveEditors(Editor @NotNull ... editors) { - EditorTracker.Companion.getInstance(myProject).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonLineMarkersRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonLineMarkersRespondToChangesTest.java index 63ed356e7b60..c3d0abbe0116 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonLineMarkersRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonLineMarkersRespondToChangesTest.java @@ -122,7 +122,7 @@ public class DaemonLineMarkersRespondToChangesTest extends DaemonAnalyzerTestCas } private void setActiveEditors(Editor @NotNull ... editors) { - (EditorTracker.Companion.getInstance(myProject)).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java index 4d6509961b3a..7929cd885d57 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/DaemonRespondToChangesTest.java @@ -224,7 +224,7 @@ public class DaemonRespondToChangesTest extends DaemonAnalyzerTestCase { } private void setActiveEditors(Editor @NotNull ... editors) { - (EditorTracker.Companion.getInstance(myProject)).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override @@ -1287,7 +1287,7 @@ public class DaemonRespondToChangesTest extends DaemonAnalyzerTestCase { TextEditor textEditor2 = new PsiAwareTextEditorProvider().getTextEditor(editor2); assertNotNull(textEditor1); assertNotNull(textEditor2); - EditorTracker.getInstance(getProject()).setActiveEditors(List.of(editor1, editor2)); + EditorTracker.getInstance(getProject()).setActiveEditorsInTests(List.of(editor1, editor2)); // check that 'MySingletonAnnotator' is run only once for two editors for the same document DaemonAnnotatorsRespondToChangesTest.useAnnotatorsIn(JavaFileType.INSTANCE.getLanguage(), new DaemonAnnotatorsRespondToChangesTest.MyRecordingAnnotator[]{new MySingletonAnnotator()}, ()-> { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/FileStatusMapTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/FileStatusMapTest.java index 82bc12181400..48ed316d1dcd 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/FileStatusMapTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/FileStatusMapTest.java @@ -127,7 +127,7 @@ public class FileStatusMapTest extends DaemonAnalyzerTestCase { } private void setActiveEditors(Editor @NotNull ... editors) { - (EditorTracker.Companion.getInstance(myProject)).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/LightBulbTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/LightBulbTest.java index e3d891a5cca0..7f593de7505a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/LightBulbTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/impl/LightBulbTest.java @@ -142,7 +142,7 @@ public class LightBulbTest extends DaemonAnalyzerTestCase { } private void setActiveEditors(Editor @NotNull ... editors) { - EditorTracker.Companion.getInstance(myProject).setActiveEditors(Arrays.asList(editors)); + EditorTracker.getInstance(myProject).setActiveEditorsInTests(Arrays.asList(editors)); } @Override diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTracker.kt b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTracker.kt index 11a7631ead3e..51dc47a518af 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTracker.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTracker.kt @@ -19,11 +19,12 @@ interface EditorTracker { fun getInstance(project: Project): EditorTracker = project.service() } - // set only for tests, it may corrupt daemon internal data structures @get:RequiresEdt - @set:RequiresEdt - @set:TestOnly - var activeEditors: List + val activeEditors: List + + @RequiresEdt + @TestOnly + fun setActiveEditorsInTests(editors: List) } interface EditorTrackerListener : EventListener { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTrackerImpl.kt b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTrackerImpl.kt index ecc220693c04..ea519a55a230 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTrackerImpl.kt +++ b/platform/lang-impl/src/com/intellij/codeInsight/daemon/impl/EditorTrackerImpl.kt @@ -20,6 +20,7 @@ import com.intellij.openapi.wm.WindowManager import com.intellij.openapi.wm.impl.IdeFrameImpl import com.intellij.openapi.wm.impl.ProjectFrameHelper import com.intellij.psi.PsiDocumentManager +import com.intellij.util.application import com.intellij.util.concurrency.annotations.RequiresEdt import org.jetbrains.annotations.ApiStatus.Internal import java.awt.Window @@ -188,6 +189,11 @@ open class EditorTrackerImpl(@JvmField protected val project: Project) : EditorT } } + override fun setActiveEditorsInTests(editors: List) { + assert(application.isUnitTestMode) + activeEditors = editors + } + private fun isActiveWindow(window: Window): Boolean { return window === activeWindow?.get() } diff --git a/platform/testFramework/junit5/highlighting/src/fixture/fixtures.kt b/platform/testFramework/junit5/highlighting/src/fixture/fixtures.kt index 54b9cc68dd2d..7618a19272d7 100644 --- a/platform/testFramework/junit5/highlighting/src/fixture/fixtures.kt +++ b/platform/testFramework/junit5/highlighting/src/fixture/fixtures.kt @@ -46,11 +46,11 @@ private suspend fun configureEditorTracker(editor: Editor): suspend () -> Unit { val editorTracker = project.serviceAsync() val previousEditors = editorTracker.activeEditors withContext(Dispatchers.EDT) { - project.serviceAsync().activeEditors = previousEditors + editor + project.serviceAsync().setActiveEditorsInTests(previousEditors + editor) } return { withContext(Dispatchers.EDT) { - editorTracker.activeEditors = previousEditors + editorTracker.setActiveEditorsInTests(previousEditors) } } }