如何在 Intellij Platform SDK 中枚举编辑器及其位置?

How to enumerate editors and their locations in Intellij Platform SDK?

我在屏幕上有以下示例布局

如何从插件代码中枚举这些编辑器及其位置?

请提供任何提示。看不懂去哪里挖...


以下代码

IdeFrame[] ideFrames = windowManager.getAllProjectFrames();

return只有一个条目

您可以使用FileEditorManagerselectedEditors 属性找到所有active/open编辑,然后向每个编辑询问他们的location on screen

FileEditorManager.getInstance(project).selectedEditors.associateWith {
    it.component.locationOnScreen
}

在 Java 中可能类似于

Editor[] editors = FileEditorManager.getInstance(project).getSelectedEditors()
Point[] locations = editors.stream()
    .map(editor -> editor.getComponent().getLocationOnScreen())
    .collect(Collectors.toList())

(这可能取决于你的上下文以及你想用它做什么你会如何实现这个,但你明白了。)