我正在为Eclipse编写一个插件来帮助我解决一些自定义错误和警告。通过使用向导创建新的插件项目开始,选择包含其中的自然和标记的选项。
这会自动在项目的上下文菜单中添加一个菜单项(popup:org.eclipse.jdt.ui.PackageExplorer?after = addeds)
这似乎适用于大多数项目。除了我需要它的项目。菜单项根本不会显示在Package Explorer中的Java项目中。
我之前只更改了默认值?之后,所以菜单项位于更适合我的位置(对于它可以使用的项目)。
Screenshot if what i've got now
这表明它正在使用Package Explorer中的非Java项目。
我还在Project Explorer中添加了相同的菜单项,一切正常。
Here is a link to the plugin.xml i currently have.
它没有工作的项目是一个简单的java项目,它是从Eclipse" New - >中新生成的。 Java项目"向导。任何其他java项目都不起作用。
它所做的项目,是从插件开发 - >中新生成的。更新站点项目"向导。
我知道它与popup:org.eclipse.jdt.ui.PackageExplorer not visible不一样,我将菜单项添加到项目的上下文菜单中,而不是文件或目录。 但是,我确实尝试使用:
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.contentTypeId" value="org.eclipse.jdt.core.IJavaProject" />
</adapt>
而不是<instanceof>
标签,这也不起作用。事实上,删除整个<instanceof>
代码甚至无效。
我知道它与Eclipse plugin menu item is not visible不一样,生成的plugin.xml使用了selection
,后来我改为activeMenuSelection
,因为它符合文档,以及插件在选择Spy说它实际上是。再一次,没有变化。
我认为它与How create popup menu item in PackageExplorer only for directories不一样,但我确实尝试使用建议的代码并玩弄它,没有运气。
所以,总结一下:
这是我的第一个Eclipse插件,大多数GUI内容都是从Plug-in Developent向导生成的。现在我希望一个真正的巫师可以引导我找到我想要的答案。
答案 0 :(得分:0)
<adapt>
标记让我有一个想法让项目适应IResource。然后检查<adapt>
标记内的性质。这似乎有效!
eclipse.org上的Platform Expression Framework页面也帮助我理解了每个标签的确切功能。
所以,我认为我的问题实际上与我首先联系的问题相似(popup:org.eclipse.jdt.ui.PackageExplorer not visible)。现在对此感到非常愚蠢......
我当前plugin.xml的相关部分:
<visibleWhen checkEnabled="false">
<with variable="activeMenuSelection">
<count value="1" />
<iterate operator="and">
<adapt type="org.eclipse.core.resources.IResource">
<and>
<not>
<test property="org.eclipse.core.resources.projectNature" value="com.mycompany.converterhelper.javaFileNature" />
</not>
<test property="org.eclipse.core.resources.projectNature" value="org.eclipse.jdt.core.javanature" />
</and>
</adapt>
</iterate>
</with>
</visibleWhen>
And a link to the entire plugin.xml
我要感谢Calon的时间和精力: - )