Ver código fonte

Only track a terminal after session has a name.

Afshin Darian 8 anos atrás
pai
commit
f71c9a98bf
1 arquivos alterados com 15 adições e 11 exclusões
  1. 15 11
      packages/terminal-extension/src/index.ts

+ 15 - 11
packages/terminal-extension/src/index.ts

@@ -107,19 +107,23 @@ function activate(app: JupyterLab, services: IServiceManager, mainMenu: IMainMen
       let term = new TerminalWidget();
       term.title.closable = true;
       term.title.icon = TERMINAL_ICON_CLASS;
-      tracker.add(term);
+      term.title.label = '...';
       shell.addToMainArea(term);
-      tracker.activate(term);
 
-      if (name) {
-        services.terminals.connectTo(name).then(session => {
-          term.session = session;
-        });
-      } else {
-        services.terminals.startNew().then(session => {
-          term.session = session;
-        });
-      }
+      let promise = name ?
+        services.terminals.connectTo(name)
+          .then(session => session || services.terminals.startNew())
+        : services.terminals.startNew();
+
+      return promise.then(session => {
+        if (!session) {
+          term.title.label = 'Error: failed to create a session';
+          return;
+        }
+        term.session = session;
+        tracker.add(term);
+        tracker.activate(term);
+      });
     }
   });