Browse Source

Add shutdown kernel menu item.

Ian Rose 7 years ago
parent
commit
2849a30fb2

+ 2 - 1
packages/console-extension/src/index.ts

@@ -437,7 +437,8 @@ function activateConsole(app: JupyterLab, mainMenu: IMainMenu, palette: ICommand
       return Promise.resolve(void 0);
     },
     restartKernel: current => current.console.session.restart(),
-    changeKernel: current => current.console.session.selectKernel()
+    changeKernel: current => current.console.session.selectKernel(),
+    shutdownKernel: current => current.console.session.shutdown()
   } as IKernelMenu.IKernelUser<ConsolePanel>);
 
   // Add a code runner to the Run menu.

+ 11 - 1
packages/mainmenu-extension/src/index.ts

@@ -47,6 +47,9 @@ namespace CommandIDs {
   export
   const changeKernel = 'kernelmenu:change';
 
+  export
+  const shutdownKernel = 'kernelmenu:shutdown';
+
   export
   const createConsole = 'kernelmenu:create-console';
 
@@ -227,6 +230,12 @@ function createKernelMenu(app: JupyterLab, menu: KernelMenu): void {
     execute: Private.delegateExecute(app, menu.kernelUsers, 'changeKernel')
   });
 
+  commands.addCommand(CommandIDs.shutdownKernel, {
+    label: 'Shutdown Kernel',
+    isEnabled: Private.delegateEnabled(app, menu.kernelUsers, 'shutdownKernel'),
+    execute: Private.delegateExecute(app, menu.kernelUsers, 'shutdownKernel')
+  });
+
   commands.addCommand(CommandIDs.createConsole, {
     label: () => {
       const name = Private.findExtenderName(app, menu.consoleCreators);
@@ -240,7 +249,8 @@ function createKernelMenu(app: JupyterLab, menu: KernelMenu): void {
   const kernelUserGroup = [
     CommandIDs.interruptKernel,
     CommandIDs.restartKernel,
-    CommandIDs.changeKernel
+    CommandIDs.changeKernel,
+    CommandIDs.shutdownKernel
   ].map(command => { return { command }; });
   menu.addGroup(kernelUserGroup, 0);
 

+ 5 - 0
packages/mainmenu/src/kernel.ts

@@ -95,6 +95,11 @@ namespace IKernelMenu {
      * A function to change the kernel.
      */
     changeKernel?: (widget: T) => Promise<void>;
+
+    /**
+     * A function to shut down the kernel.
+     */
+    shutdownKernel?: (widget: T) => Promise<void>;
   }
 
   /**

+ 2 - 1
packages/notebook-extension/src/index.ts

@@ -1353,7 +1353,8 @@ function populateMenus(app: JupyterLab, mainMenu: IMainMenu, tracker: INotebookT
       return Promise.resolve(void 0);
     },
     restartKernel: current => current.session.restart(),
-    changeKernel: current => current.session.selectKernel()
+    changeKernel: current => current.session.selectKernel(),
+    shutdownKernel: current => current.session.shutdown(),
   } as IKernelMenu.IKernelUser<NotebookPanel>);
 
   // Add a console creator the the Kernel menu