Преглед на файлове

Add evaluate command to the callstack toolbar

Jeremy Tuloup преди 4 години
родител
ревизия
30770afcc4

+ 3 - 3
packages/debugger-extension/src/index.ts

@@ -363,7 +363,8 @@ const sidebar: JupyterFrontEndPlugin<IDebugger.ISidebar> = {
       terminate: CommandIDs.terminate,
       next: CommandIDs.next,
       stepIn: CommandIDs.stepIn,
-      stepOut: CommandIDs.stepOut
+      stepOut: CommandIDs.stepOut,
+      evaluate: CommandIDs.evaluate
     };
 
     const sidebar = new Debugger.Sidebar({
@@ -642,11 +643,10 @@ const evaluatePlugin: JupyterFrontEndPlugin<void> = {
       );
     };
 
-    const command = 'debugger:evaluate';
+    const command = Debugger.CommandIDs.evaluate;
     commands.addCommand(command, {
       label: trans.__('Evaluate Code'),
       caption: trans.__('Evaluate Code'),
-      // TODO: use a different icon
       icon: Debugger.Icons.evaluateIcon,
       isEnabled: () => {
         return service.hasStoppedThreads();

+ 2 - 0
packages/debugger/src/debugger.ts

@@ -101,6 +101,8 @@ export namespace Debugger {
     export const stepOut = 'debugger:stepOut';
 
     export const inspectVariable = 'debugger:inspect-variable';
+
+    export const evaluate = 'debugger:evaluate';
   }
 
   /**

+ 13 - 0
packages/debugger/src/panels/callstack/index.ts

@@ -71,6 +71,14 @@ export class Callstack extends Panel {
       })
     );
 
+    header.toolbar.addItem(
+      'evaluate',
+      new CommandToolbarButton({
+        commands: commands.registry,
+        id: commands.evaluate
+      })
+    );
+
     this.addWidget(header);
     this.addWidget(body);
 
@@ -115,6 +123,11 @@ export namespace Callstack {
      * The stepOut command ID.
      */
     stepOut: string;
+
+    /**
+     * The evaluate command ID.
+     */
+    evaluate: string;
   }
 
   /**

+ 3 - 2
packages/debugger/test/debugger.spec.ts

@@ -102,7 +102,8 @@ describe('Debugger', () => {
         terminate: '',
         next: '',
         stepIn: '',
-        stepOut: ''
+        stepOut: '',
+        evaluate: ''
       },
       editorServices: {
         factoryService,
@@ -167,7 +168,7 @@ describe('Debugger', () => {
       const node = sidebar.callstack.node;
       const items = node.querySelectorAll('button');
 
-      expect(items.length).toEqual(5);
+      expect(items.length).toEqual(6);
       items.forEach(item => {
         expect(Array.from(items[0].classList)).toEqual(
           expect.arrayContaining(['jp-ToolbarButtonComponent'])