Intellij插件开发-访问上一次激活的编辑器的内部堆栈

问题描述 投票:2回答:1

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

我相信这由“激活最近打开的文件”使用。

我自己建立此索引可能会因使用多种方式打开文件/标签而导致错误。

最佳方法是什么?

java intellij-idea intellij-plugin
1个回答
0
投票
    /**
     * 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)将在当前活动的编辑器之前获取文件。

isOpen丢失,但是可以通过几种方法从AnActionEvent事件中检索。

© www.soinside.com 2019 - 2024. All rights reserved.