目前我在工作中得到了一个Eclipse插件,没有人知道它应该在Eclipse中显示在哪里。因此,我试图了解plugin.xml是如何工作的,到目前为止,它看起来还不错--所以我想在这里确认一下:
<menuContribution
allPopups="false"
locationURI="[...]?after=refactor">这意味着我的插件菜单(及其包含的命令)应该显示在选项中,在之后,我在任何元素上选择Refactor,对吗?
(在这方面还有一些工作要做,到目前为止还没有显示出来,所以我一定要找对的地方,这就是我提出(非常简单)问题的原因。)
发布于 2016-11-15 10:01:16
这意味着菜单项是在名为refactor的菜单项之后添加到菜单中。它与运行任何操作无关。当菜单项可见时,可以使用visibleWhen元素来控制。
例如,这来自Java Debug代码:
<menuContribution
allPopups="false"
locationURI="popup:#CompilationUnitEditorContext?before=additions">
<separator
name="java.debug">
</separator>
<command
commandId="org.eclipse.jdt.debug.ui.commands.StepIntoSelection"
style="push">
<visibleWhen
checkEnabled="false">
<and>
<systemTest
property="org.eclipse.jdt.debug.ui.debuggerActive"
value="true">
</systemTest>
<systemTest
property="org.eclipse.jdt.debug.ui.instanceof.IJavaStackFrame"
value="true">
</systemTest>
<with
variable="activeMenuSelection">
<instanceof
value="org.eclipse.jface.text.ITextSelection">
</instanceof>
</with>
</and>
</visibleWhen>
</command>
</menuContribution>在这种情况下,before=additions说菜单是在名为additions的菜单项之前添加的。当菜单显示时,使用一个相当精细的visibleWhen来控制。
分隔符定义:
<separator
name="java.debug">
</separator>添加一个名为java.debug的单独名称,然后可以在before / after中使用该名称。
https://stackoverflow.com/questions/40606287
复制相似问题