我目前正在使用Eclipse-Plugin,没有人知道它应该在Eclipse中显示的位置。所以我试图理解plugin.xml是如何工作的,到目前为止它看起来很好 - 所以只是在这里确认一下:
<menuContribution
allPopups="false"
locationURI="[...]?after=refactor">
这意味着我的插件菜单(包含其中包含的命令)应该显示在选项 之后我选择任何元素上的Refactor
,对吗?
(目前还有一些工作要做,到目前为止没有任何表现,但我可以肯定地找到正确的地方,这就是我(非常简单)问题的原因。)
答案 0 :(得分:1)
所有这些意味着菜单项在名为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
中使用。