我想知道在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的引用,因此我无法获取文件句柄。
在源查看器配置文件中,我设置了代码扫描程序,这需要一些项目特定的信息来设置相应的规则。
答案 0 :(得分:0)
您永远不会得到保证(即使IFileEditorInput
),以确定哪些文件是"打开"与编辑。
甚至没有定义"打开的文件"例如,编辑器显示多个文件的内容(如PDE的Plug-In Manifest Editor)。其他编辑器仅显示URI的内容(可能本地)
您能解释一下您要解决的问题吗?