Eclipse-Plugin - plugin.xml - 理解?after = refactor

时间:2016-11-15 09:28:54

标签: xml eclipse eclipse-plugin

我目前正在使用Eclipse-Plugin,没有人知道它应该在Eclipse中显示的位置。所以我试图理解plugin.xml是如何工作的,到目前为止它看起来很好 - 所以只是在这里确认一下:

<menuContribution
     allPopups="false"  
     locationURI="[...]?after=refactor">

这意味着我的插件菜单(包含其中包含的命令)应该显示在选项 之后我选择任何元素上的Refactor,对吗?

(目前还有一些工作要做,到目前为止没有任何表现,但我可以肯定地找到正确的地方,这就是我(非常简单)问题的原因。)

1 个答案:

答案 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中使用。