refactor [editor]: do not expose public setter

GitOrigin-RevId: fe457de392fed3077a4248d2e872fe2a58eabc43
This commit is contained in:
Aleksey Pivovarov
2026-02-13 16:13:13 +00:00
committed by intellij-monorepo-bot
parent 731cf5b9ef
commit 847be5e2fe
10 changed files with 21 additions and 14 deletions
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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()}, ()-> {
@@ -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
@@ -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
@@ -19,11 +19,12 @@ interface EditorTracker {
fun getInstance(project: Project): EditorTracker = project.service<EditorTracker>()
}
// set only for tests, it may corrupt daemon internal data structures
@get:RequiresEdt
@set:RequiresEdt
@set:TestOnly
var activeEditors: List<Editor>
val activeEditors: List<Editor>
@RequiresEdt
@TestOnly
fun setActiveEditorsInTests(editors: List<Editor>)
}
interface EditorTrackerListener : EventListener {
@@ -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<Editor>) {
assert(application.isUnitTestMode)
activeEditors = editors
}
private fun isActiveWindow(window: Window): Boolean {
return window === activeWindow?.get()
}
@@ -46,11 +46,11 @@ private suspend fun configureEditorTracker(editor: Editor): suspend () -> Unit {
val editorTracker = project.serviceAsync<EditorTracker>()
val previousEditors = editorTracker.activeEditors
withContext(Dispatchers.EDT) {
project.serviceAsync<EditorTracker>().activeEditors = previousEditors + editor
project.serviceAsync<EditorTracker>().setActiveEditorsInTests(previousEditors + editor)
}
return {
withContext(Dispatchers.EDT) {
editorTracker.activeEditors = previousEditors
editorTracker.setActiveEditorsInTests(previousEditors)
}
}
}