2016-12-07 1 views
1

Ich habe den Erweiterungspunkt org.eclipse.ui.menus hinzugefügt, um eine neue Schaltfläche in der Debug-Ansicht zu erstellen.Befehlsausdruck für aktive Debugsitzung?

Das funktioniert perfekt, aber diese bestimmte Schaltfläche ist jetzt immer sichtbar. Wie kann ich eine visibleWhen Bedingung hinzufügen, die überprüft, ob eine Debugsitzung gerade ausgeführt wird?

Ich überprüfte die Command Core Expressions, aber fand keine Ausdrücke, die in diesem Fall funktionieren könnten.

Antwort

1

Die Menüs in den org.eclipse.jdt.debug.ui Plugin verwenden Ausdrücke wie folgt aus:

<visibleWhen 
     checkEnabled="false"> 
    <and> 
     <systemTest 
      property="org.eclipse.jdt.debug.ui.debuggerActive" 
      value="true"> 
     </systemTest> 

     ... other tests ... 

    </and> 
</visibleWhen> 
+0

Dank Greg. Ich habe vergessen zu erwähnen, dass ich CDT verwende und ich denke, deshalb funktioniert es in meinem Fall nicht (ich dachte, dass die Debug-Ansicht völlig unabhängig von CDT ist). Also, weißt du, wie man das in CDT macht? –

+0

Ich weiß nichts über CDT. –

1

Es ist ein gutes Beispiel Projekt in CDT, wie DSF Anpassung zu beginnen. Bitte sehen Sie sich plugin.xml an und folgen Sie den Anweisungen der dort definierten Befehls-ID: org.eclipse.cdt.examples.dsf.gdb.command.showVersion

Hier ist einer der visibleWhen 's aus diesem Code.

 <visibleWhen 
       checkEnabled="false"> 
      <and> 
       <reference 
        definitionId="org.eclipse.cdt.debug.ui.testIsDebugActionSetActive"> 
       </reference> 
       <with variable="org.eclipse.core.runtime.Platform"> 
       <test property="org.eclipse.core.runtime.bundleState" 
        args="org.eclipse.cdt.examples.dsf.gdb" 
        value="ACTIVE"> 
       </test> 
       </with> 
      </and> 
     </visibleWhen> 
Verwandte Themen