繁体   English   中英

如何不使用IEditorPart来查找在Eclipse编辑器中打开的文件?

[英]How to find which file is open in eclipse editor without using IEditorPart?

我想知道在Eclipse编辑器中打开了哪个文件(甚至项目就足够了)? 我知道一旦从doSetInput方法获取IEditorPart,我们就可以执行此操作,

IFile file = ((IFileEditorInput) iEditorPart).getFile();

但是我想要不使用IEditorPart的文件名 ,该怎么做?
在项目浏览器中检查哪个是选定文件没有太大帮助,因为用户可以一次选择多个文件并同时打开所有文件,而我无法区分哪个文件在何时打开。
添加更多信息:
我为特定类型的文件指定了一个编辑器,现在每次打开文件时,在初始化编辑器的过程中,我都会根据项目属性执行一些操作。
在初始化编辑器时,我需要文件句柄(用户打开/双击的那个)或相应的项目句柄。 我的编辑器是这样的:

public class MyEditor extends TextEditor{
    @Override
    protected void initializeEditor() {
        setSourceViewerConfiguration(new MySourceViewerConfiguration(
            CDTUITools.getColorManager(), store,
            "MyPartitions", this));
    }

    //other required methods

    @Override
    protected void doSetInput(IEditorInput input) throws CoreException {
        if(input instanceof IFileEditorInput)
        {
            IFile file = ((IFileEditorInput) input).getFile();
        }
    }
}

就像我在doSetInput()方法中所做的那样,我想要文件句柄(即使项目句柄就足够了)。 但是问题是在initializeEditor()函数中没有对editorInput的引用,因此我无法获取文件句柄。
在源查看器配置文件中,我设置了代码扫描器,这需要一些特定于项目的信息,这些信息将设置相应的规则。

您永远无法保证(即使使用IFileEditorInput )也不知道哪些文件已被编辑器“打开”。

甚至没有“打开的文件”的定义,例如,显示多个文件内容的编辑器(例如PDE的插件清单编辑器)。 其他编辑器仅显示URI的内容( 可能是本地的)

您能说明您要解决的问题吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM