2016-11-15 13 views
0

私は現在、Eclipse-Pluginを職場に与えており、Eclipseに表示されるはずの場所は誰にも分かりません。だから私はどのようにplugin.xmlの作品を理解しようとしていると、これまでのところ、それはよさそうだ - だから、ここで自分自身を確認する:Eclipse-Plugin - plugin.xml - 理解後=リファクタリング

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

(それが含まれているコマンドで)私のプラグインメニューを想定していることを意味しますオプションで表示する私はいずれかの要素にRefactorを選択します。

(あり、この上で行われるいくつかの作業がまだあるとこれまでのところ何も私が正しい場所に見て確認することができますbutso示していない、私の(非常に簡単)、質問の理由のthats。)

答えて

1

このすべてメニュー項目がrefactorと呼ばれるメニューの後に追加されることを意味します。それは何らかのアクションを実行することとは関係ありません。 visibleWhen要素を使用して、メニュー項目がいつ表示されるかを制御します。

例えばこれは、Javaデバッグコードからである。この場合before=additions

<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> 

は、メニュー項目がadditionsと呼ばれる前にメニューが追加されると言います。メニューが表示されたときを制御するのに、かなり精巧なvisibleWhenが使われます。

セパレータ定義:

 <separator 
      name="java.debug"> 
     </separator> 

名前java.debugと別加算 - 次いでbefore/afterで使用することができます。

+0

したがって、** refactorをクリックした後には表示されませんが、エントリの下に表示されます - この権利を得ていますか? – SgtDroelf

+1

メニュー内の位置です。何らかのアクションを実行することとは関係がありません。標準的な方法はありません。 –

関連する問題