Jelajahi Sumber

Merged IDebugger and IService

Johan Mabille 5 tahun lalu
induk
melakukan
d78d418ff4
5 mengubah file dengan 71 tambahan dan 73 penghapusan
  1. 1 1
      src/handlers/cell.ts
  2. 2 2
      src/handlers/console.ts
  3. 2 2
      src/handlers/notebook.ts
  4. 20 10
      src/service.ts
  5. 46 58
      src/tokens.ts

+ 1 - 1
src/handlers/cell.ts

@@ -219,7 +219,7 @@ export class CellManager implements IDisposable {
 export namespace CellManager {
   export interface IOptions {
     debuggerModel: Debugger.Model;
-    debuggerService: IDebugger.IService;
+    debuggerService: IDebugger;
     breakpointsModel: Breakpoints.Model;
     activeCell?: CodeCell;
     type: SessionTypes;

+ 2 - 2
src/handlers/console.ts

@@ -35,7 +35,7 @@ export class DebuggerConsoleHandler implements IDisposable {
 
   private consoleTracker: IConsoleTracker;
   private debuggerModel: Debugger.Model;
-  private debuggerService: IDebugger.IService;
+  private debuggerService: IDebugger;
   private breakpoints: Breakpoints.Model;
   private cellManager: CellManager;
   isDisposed: boolean;
@@ -68,7 +68,7 @@ export class DebuggerConsoleHandler implements IDisposable {
 export namespace DebuggerConsoleHandler {
   export interface IOptions {
     debuggerModel: Debugger.Model;
-    debuggerService: IDebugger.IService;
+    debuggerService: IDebugger;
     tracker: IConsoleTracker;
   }
 }

+ 2 - 2
src/handlers/notebook.ts

@@ -35,7 +35,7 @@ export class DebuggerNotebookHandler implements IDisposable {
 
   private notebookTracker: INotebookTracker;
   private debuggerModel: Debugger.Model;
-  private debuggerService: IDebugger.IService;
+  private debuggerService: IDebugger;
   private breakpoints: Breakpoints.Model;
   private cellManager: CellManager;
   isDisposed: boolean;
@@ -68,7 +68,7 @@ export class DebuggerNotebookHandler implements IDisposable {
 export namespace DebuggerNotebookHandler {
   export interface IOptions {
     debuggerModel: Debugger.Model;
-    debuggerService: IDebugger.IService;
+    debuggerService: IDebugger;
     tracker: INotebookTracker;
   }
 }

+ 20 - 10
src/service.ts

@@ -1,3 +1,6 @@
+// temporary
+import { MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils';
+
 import { ISignal, Signal } from '@phosphor/signaling';
 
 import { DebugProtocol } from 'vscode-debugprotocol';
@@ -10,7 +13,7 @@ import { Variables } from './variables';
 
 import { Callstack } from './callstack';
 
-export class DebugService implements IDebugger.IService {
+export class DebugService implements IDebugger {
   constructor(debuggerModel: Debugger.Model) {
     // Avoids setting session with invalid client
     // session should be set only when a notebook or
@@ -21,6 +24,10 @@ export class DebugService implements IDebugger.IService {
     this._model = debuggerModel;
   }
 
+  get tracker(): WidgetTracker<MainAreaWidget<Debugger>> {
+    return null;
+  }
+
   dispose(): void {
     if (this.isDisposed) {
       return;
@@ -33,6 +40,14 @@ export class DebugService implements IDebugger.IService {
     return this._isDisposed;
   }
 
+  get mode(): IDebugger.Mode {
+    return this._model.mode;
+  }
+
+  set mode(mode: IDebugger.Mode) {
+    this._model.mode = mode;
+  }
+
   set session(session: IDebugger.ISession) {
     if (this._session === session) {
       return;
@@ -102,11 +117,11 @@ export class DebugService implements IDebugger.IService {
     }
   }
 
-  get sessionChanged(): ISignal<IDebugger.IService, IDebugger.ISession> {
+  get sessionChanged(): ISignal<IDebugger, IDebugger.ISession> {
     return this._sessionChanged;
   }
 
-  get eventMessage(): ISignal<IDebugger.IService, IDebugger.ISession.Event> {
+  get eventMessage(): ISignal<IDebugger, IDebugger.ISession.Event> {
     return this._eventMessage;
   }
 
@@ -253,13 +268,8 @@ export class DebugService implements IDebugger.IService {
 
   private _isDisposed: boolean = false;
   private _session: IDebugger.ISession;
-  private _sessionChanged = new Signal<IDebugger.IService, IDebugger.ISession>(
-    this
-  );
-  private _eventMessage = new Signal<
-    IDebugger.IService,
-    IDebugger.ISession.Event
-  >(this);
+  private _sessionChanged = new Signal<IDebugger, IDebugger.ISession>(this);
+  private _eventMessage = new Signal<IDebugger, IDebugger.ISession.Event>(this);
   private _model: Debugger.Model;
   private frames: Frame[] = [];
   // TODO: move this in model

+ 46 - 58
src/tokens.ts

@@ -13,7 +13,7 @@ import { Session } from '@jupyterlab/services';
 
 import { Token } from '@phosphor/coreutils';
 
-import { IDisposable, IObservableDisposable } from '@phosphor/disposable';
+import { IObservableDisposable } from '@phosphor/disposable';
 
 import { ISignal } from '@phosphor/signaling';
 
@@ -43,6 +43,51 @@ export interface IDebugger {
    * tracker for get instance of debugger.
    */
   tracker: WidgetTracker<MainAreaWidget<Debugger>>;
+
+  /**
+   * Whether the debugger can start.
+   */
+  canStart(): boolean;
+
+  /**
+   * Whether the current debugger is started.
+   */
+  isStarted(): boolean;
+
+  /**
+   * Whether the current thread is stopped.
+   */
+  isThreadStopped(): boolean;
+
+  /**
+   * Continues the execution of the current thread.
+   */
+  continue(): Promise<void>;
+
+  /**
+   * Makes the current thread run again for one step.
+   */
+  next(): Promise<void>;
+
+  /**
+   * Makes the current thread step in a function / method if possible.
+   */
+  stepIn(): Promise<void>;
+
+  /**
+   * Signal emitted upon session changed.
+   */
+  sessionChanged: ISignal<IDebugger, IDebugger.ISession>;
+
+  /**
+   * Signal emitted for debug event messages.
+   */
+  eventMessage: ISignal<IDebugger, IDebugger.ISession.Event>;
+
+  /**
+   * For testing purpose only, to be removed.
+   */
+  launch(code: string): Promise<void>;
 }
 
 /**
@@ -102,63 +147,6 @@ export namespace IDebugger {
     eventMessage: ISignal<IDebugger.ISession, IDebugger.ISession.Event>;
   }
 
-  export interface IService extends IDisposable {
-    /**
-     * The API debugger session to connect to a debugger
-     */
-    session: IDebugger.ISession;
-
-    /**
-     * Whether the debugger can start.
-     */
-    canStart(): boolean;
-
-    /**
-     * Whether the current debugger is started.
-     */
-    isStarted(): boolean;
-
-    /**
-     * Whether the current thread is stopped.
-     */
-    isThreadStopped(): boolean;
-
-    /**
-     * Update all breakpoints at once.
-     */
-    updateBreakpoints(): Promise<void>;
-
-    /**
-     * Continues the execution of the current thread.
-     */
-    continue(): Promise<void>;
-
-    /**
-     * Makes the current thread run again for one step.
-     */
-    next(): Promise<void>;
-
-    /**
-     * Makes the current thread step in a function / method if possible.
-     */
-    stepIn(): Promise<void>;
-
-    /**
-     * For testing purpose only, to be removed.
-     */
-    launch(code: string): Promise<void>;
-
-    /**
-     * Signal emitted upon session changed.
-     */
-    sessionChanged: ISignal<IDebugger.IService, IDebugger.ISession>;
-
-    /**
-     * Signal emitted for debug event messages.
-     */
-    eventMessage: ISignal<IDebugger.IService, IDebugger.ISession.Event>;
-  }
-
   export namespace ISession {
     /**
      * Arguments for 'dumpCell' request.