以编程方式检索任意 Eclipse 首选项

Retrieving arbitrary Eclipse preferences programmatically

我正在写a plugin for Pig files。我想检索 Eclipse "file associations" 首选项 - General -> Editors -> File Associations -> File Types / Associated Editors 下的首选项。

一旦我有了这个偏好,我的插件就可以知道正在使用哪些文件类型,并在迭代工作区文件时(在搜索等中)采取相应的行动。

我在任何地方都找不到 "directory" 首选项,也找不到 API 可以迭代直到找到它。搜索我的工作区的文件系统似乎也不起作用 - 可能首选项是以二进制格式保存的。

1) 从 PreferenceStore 中检索此首选项的关键是什么?

2) 一般来说,找到给定偏好的键的最佳方法是什么?

我会尽量给你一些提示,有人可能有更好的解决方案:

1 : 编号 org.eclipse.ui.preferencePages.ContentTypes

2 : 在 eclipse 上的 desire page/widget 上使用 Plug-ins Spy Press Alt-Shift-F1,它将显示上下文信息

使用

IFileEditorMapping[] mapping = PlatformUI.getWorkbench().getEditorRegistry().getFileEditorMappings();

获取文件类型与其支持的编辑器之间的映射。查看 at this javadoc 以了解您可能想了解的有关映射的所有信息

没有总API可以给你所有的偏好。

许多首选项以 'plugin-id.prefs' 文件(Java 属性 文件格式)存储在工作区 .metadata/.plugins/org.eclipse.core.runtime/.settings 目录中。您可以通过

访问这些
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode("plugin id");

String value = prefs.get("preference id", defaultValue);

所以你需要知道拥有偏好的插件的id和偏好本身的id。此信息可能很难找到,可能需要阅读偏好页面的来源。

其他首选项存储在 Eclipse configuration 目录中。还有一些格式只有特定插件知道(但通常有一些 API 可以访问信息)。