gpt4 book ai didi

Eclipse 特定于自然的项目属性

转载 作者:行者123 更新时间:2023-12-05 01:20:48 24 4
gpt4 key购买 nike

我正在开发具有自定义项目性质的 Eclipse 插件。大自然本身运作良好。我需要实现一个特定于项目的属性页面,允许用户自定义特定于该性质的设置;到目前为止,我一直没有成功,并会感谢任何帮助。我设想这类似于 Java 特性允许人们设置项目特定的编译器选项、格式化程序设置等的方式。

将项目设置存储在项目本身中至关重要,类似于 Java 设置存储在 (project root)/.settings/org.eclipse.jdt.*.prefs 中的方式。这些需要在该项目的源代码控制中,以便整个团队都遵守相同的标准。

这是我目前在 plugin.xml 中的内容:

  <extension point="org.eclipse.ui.propertyPages">
<page id="test.MyOverlayPage"
name="%Key.PropertyPage"
class="test.MyOverlayPage">
<enabledWhen>
<instanceof value="org.eclipse.core.resources.IProject"/>
</enabledWhen>
</page>
</extension>

这显然不会像 Java 设置那样本质上限制属性页,但目前这不会显示在任何项目中,更不用说具有自定义性质的项目了。

我发现以下问题没有解决我的具体问题:

Create our own property page for project explorer eclipse plugin

Eclipse: Storing info in .project file

我还发现这个 Eclipse 帮助页面严重缺乏细节,我无法基于它来实现它:

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2FresInt_properties.htm

最佳答案

Java 属性页使用这个:

<enabledWhen>
<adapt type="org.eclipse.core.resources.IProject">
<test property="org.eclipse.core.resources.projectNature"
value="org.eclipse.jdt.core.javanature"/>
</adapt>
</enabledWhen>

这使用 adapt 而不是 instanceof 因为 View 中的 UI 对象通常不是项目(或其他资源)的实例。相反,他们使用 IAdapterManager 将 UI 类转换(适配)为工作区模型类。

test 元素添加了对项目性质的测试,这里是针对 Java 性质 id,但您可以替换为您的性质 id。

要在项目 .settings 中保存首选项,请使用如下内容:

IProject project =  ... get project from selection or something

IScopeContext context = new ProjectScope(project);

Preferences projectPreferences = context.getNode("your nature id");

projectPreferences.put(key, value);

projectPreferences.flush();

关于Eclipse 特定于自然的项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21269281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com