Eclipse 插件:在外部 JAR 中的所有 class 文件上显示上下文函数
Eclipse Plugin: Show context function on all class-Files in external JARs
我正在开发一个 Eclipse 插件,我想在 Project Explorer 的上下文菜单中添加一个条目。只有当 class-文件被 selected 时,该条目才应该可见。
将以下内容添加到我的 plugin.xml 文件中即可。但是,当我 select 外部 JAR 中的 class 文件时,它不起作用。这种行为的原因是什么?我怎样才能使我的上下文菜单在这种情况下也可见?
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.ui.popup.any">
<command
commandId="my_command"
label="Test"
style="push">
<visibleWhen>
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IFile">
<test property="org.eclipse.core.resources.name" value="*class" />
</adapt>
</iterate>
</visibleWhen>
</command>
</menuContribution>
感谢用户 greg-449 和 howlger 我解决了我的问题。问题在于 JAR 文件中的对象未表示为 IFile。因此,我调整了 visibleWhen 部分:
<visibleWhen>
<iterate ifEmpty="false">
<instanceof value="org.eclipse.jdt.core.IOrdinaryClassFile" />
</ iterate>
</visibleWhen>
我正在开发一个 Eclipse 插件,我想在 Project Explorer 的上下文菜单中添加一个条目。只有当 class-文件被 selected 时,该条目才应该可见。
将以下内容添加到我的 plugin.xml 文件中即可。但是,当我 select 外部 JAR 中的 class 文件时,它不起作用。这种行为的原因是什么?我怎样才能使我的上下文菜单在这种情况下也可见?
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.ui.popup.any">
<command
commandId="my_command"
label="Test"
style="push">
<visibleWhen>
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IFile">
<test property="org.eclipse.core.resources.name" value="*class" />
</adapt>
</iterate>
</visibleWhen>
</command>
</menuContribution>
感谢用户 greg-449 和 howlger 我解决了我的问题。问题在于 JAR 文件中的对象未表示为 IFile。因此,我调整了 visibleWhen 部分:
<visibleWhen>
<iterate ifEmpty="false">
<instanceof value="org.eclipse.jdt.core.IOrdinaryClassFile" />
</ iterate>
</visibleWhen>