Intellij 插件开发 - 访问最后激活的编辑器的内部堆栈

Intellij plugin development - Get access to internal stack of last activated editors

在 intellij 插件开发环境中,我想访问上次激活的编辑器上应该可用的某种堆栈。

我相信这是被 "activate most recently opened file" 使用的。

自己建这个索引会因为各种打开方式而出错file/tab。

最好的方法是什么?

    /**
     * Note, most recent file is last in the list.
     */
    public List<VirtualFile> getRecentFiles() {
            return EditorHistoryManager.getInstance(project).getFileList();
    }
    public VirtualFile getMostRecentFile(int index) {
            return getMostRecentFile(index, true);
    }
    public VirtualFile getMostRecentFile(int index, boolean mustBeOpen) {
            List<VirtualFile> files = getRecentFiles();

            int i = files.size() - index - 1;

            if ( i < files.size() ) {
                    VirtualFile file = files.get(i);

                    if ( mustBeOpen && !isOpen(file) ) {
                            file = getMostRecentFile( index - 1, mustBeOpen );
                    }

                    return file;
            }

            return null;
    }

getMostRecentFile(1) 会先于当前活动的编辑器获取文件。

此处缺少

isOpenproject,但可以通过多种方式从 AnActionEvent 事件中检索。