【问题标题】:Eclipse-Plugin - plugin.xml - Understanding ?after=refactorEclipse-Plugin - plugin.xml - 理解 ?after=refactor
【发布时间】:2016-11-15 18:01:16
【问题描述】:

我目前在工作中得到了一个 Eclipse-Plugin,但没有人知道它应该在 Eclipse 中显示的位置。所以我试图了解 plugin.xml 是如何工作的,到目前为止它看起来不错 - 所以只是在这里确认自己:

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

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

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

【问题讨论】:

    标签: xml eclipse eclipse-plugin


    【解决方案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 中使用。

    【讨论】:

    • 所以它没有显示 之后 我点击 refactor 而是在条目下方 - 我做对了吗?
    • 就是在菜单中的位置。它与执行某些操作无关 - 没有标准的方法来执行此操作。
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 2010-09-10
    • 2011-10-13
    • 2016-11-26
    • 2015-06-12
    • 2014-09-27
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多