我正在尝试以编程方式从我的(基于DLTK的)Eclipse插件中检索特定编辑器的关联文件扩展名。原因是我只想索引与我的编辑器相关联的文件,我需要避免硬编码扩展,因为用户可以通过Eclipse首选项将任何文件扩展名与编辑器相关联。
示例代码:
public boolean isValidPluginFile(ISourceModule sourceModule) {
// currently:
if (sourceModule.getUnderlyingResource().getFileExtension().equals("twig")) {
return true;
}
return false;
// what i would need instead (pseudocode):
List extensions = Somehow.Retrieve.AssociatedExtensionsFor('MyEditorID');
for (String extension : extensions) {
if (sourceModule.getUnderlyingResource().getFileExtension().equals(extension)) {
return true;
}
}
return false;
}
答案 0 :(得分:2)
您可以获得所有file editor mappings
IEditorRegistry editorReg = PlatformUI.getWorkbench().getEditorRegistry();
IFileEditorMapping[] mappings = editorReg.getFileEditorMappings();
然后选择仅与您的editorId相关联。