@jupyterlab/debugger 4.0.0-beta.0 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,7 +11,7 @@ import React from 'react';
11
11
  export const SourcePathComponent = ({ model }) => {
12
12
  return (React.createElement(UseSignal, { signal: model.currentSourceChanged, initialSender: model }, (model) => {
13
13
  var _a, _b;
14
- return (React.createElement("span", { onClick: () => model === null || model === void 0 ? void 0 : model.open() }, (_b = (_a = model === null || model === void 0 ? void 0 : model.currentSource) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : ''));
14
+ return (React.createElement("span", { onClick: () => model === null || model === void 0 ? void 0 : model.open(), className: "jp-DebuggerSources-header-path" }, (_b = (_a = model === null || model === void 0 ? void 0 : model.currentSource) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : ''));
15
15
  }));
16
16
  };
17
17
  //# sourceMappingURL=sourcepath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourcepath.js","sourceRoot":"","sources":["../../../src/panels/sources/sourcepath.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,KAAK,EAGN,EAAe,EAAE;IAChB,OAAO,CACL,oBAAC,SAAS,IAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE,aAAa,EAAE,KAAK,IAChE,CAAC,KAAK,EAAe,EAAE;;QAAC,OAAA,CACvB,8BAAM,OAAO,EAAE,GAAS,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,IACrC,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,0CAAE,IAAI,mCAAI,EAAE,CAC5B,CACR,CAAA;KAAA,CACS,CACb,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"sourcepath.js","sourceRoot":"","sources":["../../../src/panels/sources/sourcepath.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,KAAK,EAGN,EAAe,EAAE;IAChB,OAAO,CACL,oBAAC,SAAS,IAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,EAAE,aAAa,EAAE,KAAK,IAChE,CAAC,KAAK,EAAe,EAAE;;QAAC,OAAA,CACvB,8BACE,OAAO,EAAE,GAAS,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,EAClC,SAAS,EAAC,gCAAgC,IAEzC,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,0CAAE,IAAI,mCAAI,EAAE,CAC5B,CACR,CAAA;KAAA,CACS,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { IThemeManager } from '@jupyterlab/apputils';
2
+ import { ITranslator } from '@jupyterlab/translation';
2
3
  import { CommandRegistry } from '@lumino/commands';
4
+ import { Message } from '@lumino/messaging';
3
5
  import { Panel } from '@lumino/widgets';
4
6
  import { IDebugger } from '../../tokens';
5
- import { ITranslator } from '@jupyterlab/translation';
6
- import { Message } from '@lumino/messaging';
7
7
  /**
8
8
  * A data grid that displays variables in a debugger session.
9
9
  */
@@ -15,32 +15,35 @@ export declare class VariablesBodyGrid extends Panel {
15
15
  */
16
16
  constructor(options: VariablesBodyGrid.IOptions);
17
17
  /**
18
- * Wait until actually displaying the grid to trigger initialization.
18
+ * The variable filter list.
19
19
  */
20
- protected onBeforeShow(msg: Message): void;
20
+ get filter(): Set<string>;
21
+ set filter(filter: Set<string>);
21
22
  /**
22
- * Load the grid panel implementation.
23
+ * The current scope of the variables.
23
24
  */
24
- protected initialize(): Promise<void>;
25
+ get scope(): string;
26
+ set scope(scope: string);
27
+ protected commands: CommandRegistry;
28
+ protected model: IDebugger.Model.IVariables;
29
+ protected themeManager: IThemeManager | null | undefined;
30
+ protected translator: ITranslator | undefined;
25
31
  /**
26
- * Set the variable filter list.
27
- *
28
- * @param filter The variable filter to apply.
32
+ * Load the grid panel implementation and instantiate a grid.
29
33
  */
30
- set filter(filter: Set<string>);
34
+ protected initialize(): Promise<void>;
31
35
  /**
32
- * Set the current scope.
33
- *
34
- * @param scope The current scope for the variables.
36
+ * Wait until actually displaying the grid to trigger initialization.
35
37
  */
36
- set scope(scope: string);
38
+ protected onBeforeShow(msg: Message): void;
37
39
  /**
38
- * Update the underlying data model
40
+ * Handle `update-request` messages.
39
41
  */
40
- private _update;
42
+ protected onUpdateRequest(msg: Message): void;
43
+ private _filter;
41
44
  private _grid;
42
- private _model;
43
- private _options;
45
+ private _pending;
46
+ private _scope;
44
47
  }
45
48
  /**
46
49
  * A namespace for `VariablesBodyGrid` statics.
@@ -1,7 +1,6 @@
1
1
  // Copyright (c) Jupyter Development Team.
2
2
  // Distributed under the terms of the Modified BSD License.
3
3
  import { Panel } from '@lumino/widgets';
4
- import { PromiseDelegate } from '@lumino/coreutils';
5
4
  /**
6
5
  * A data grid that displays variables in a debugger session.
7
6
  */
@@ -13,74 +12,73 @@ export class VariablesBodyGrid extends Panel {
13
12
  */
14
13
  constructor(options) {
15
14
  super();
16
- this._model = options.model;
17
- this._options = options;
15
+ this._filter = new Set();
16
+ this._grid = null;
17
+ this._pending = null;
18
+ this.commands = options.commands;
19
+ this.model = options.model;
20
+ this.themeManager = options.themeManager;
21
+ this.translator = options.translator;
22
+ this.model.changed.connect(() => this.update(), this);
18
23
  this.addClass('jp-DebuggerVariables-body');
19
24
  }
20
25
  /**
21
- * Wait until actually displaying the grid to trigger initialization.
26
+ * The variable filter list.
22
27
  */
23
- onBeforeShow(msg) {
24
- if (!this._grid) {
25
- void this.initialize();
26
- }
28
+ get filter() {
29
+ return this._filter;
30
+ }
31
+ set filter(filter) {
32
+ this._filter = filter;
33
+ this.update();
27
34
  }
28
35
  /**
29
- * Load the grid panel implementation.
36
+ * The current scope of the variables.
37
+ */
38
+ get scope() {
39
+ return this._scope;
40
+ }
41
+ set scope(scope) {
42
+ this._scope = scope;
43
+ this.update();
44
+ }
45
+ /**
46
+ * Load the grid panel implementation and instantiate a grid.
30
47
  */
31
48
  async initialize() {
32
- const { model, commands, themeManager, scopes, translator } = this._options;
33
- const { Grid } = await Private.ensureGridPanel();
49
+ if (this._grid || this._pending) {
50
+ return;
51
+ }
52
+ // Lazily load the datagrid module when the first grid is requested.
53
+ const { Grid } = await (this._pending = import('./gridpanel'));
54
+ const { commands, model, themeManager, translator } = this;
34
55
  this._grid = new Grid({ commands, model, themeManager, translator });
35
56
  this._grid.addClass('jp-DebuggerVariables-grid');
36
- this._model.changed.connect((model) => {
37
- this._update();
38
- }, this);
39
- this._grid.dataModel.setData(scopes !== null && scopes !== void 0 ? scopes : []);
57
+ this._pending = null;
40
58
  this.addWidget(this._grid);
59
+ this.update();
41
60
  }
42
61
  /**
43
- * Set the variable filter list.
44
- *
45
- * @param filter The variable filter to apply.
46
- */
47
- set filter(filter) {
48
- this._grid.dataModel.filter = filter;
49
- this._update();
50
- }
51
- /**
52
- * Set the current scope.
53
- *
54
- * @param scope The current scope for the variables.
62
+ * Wait until actually displaying the grid to trigger initialization.
55
63
  */
56
- set scope(scope) {
57
- this._grid.dataModel.scope = scope;
58
- this._update();
64
+ onBeforeShow(msg) {
65
+ if (!this._grid && !this._pending) {
66
+ void this.initialize();
67
+ }
68
+ super.onBeforeShow(msg);
59
69
  }
60
70
  /**
61
- * Update the underlying data model
71
+ * Handle `update-request` messages.
62
72
  */
63
- _update() {
73
+ onUpdateRequest(msg) {
64
74
  var _a;
65
- this._grid.dataModel.setData((_a = this._model.scopes) !== null && _a !== void 0 ? _a : []);
66
- }
67
- }
68
- /**
69
- * A private namespace for managing lazy loading of the underlying grid panel.
70
- */
71
- var Private;
72
- (function (Private) {
73
- let gridPanelLoaded = null;
74
- /**
75
- * Lazily load the datagrid module when the first grid is requested.
76
- */
77
- async function ensureGridPanel() {
78
- if (gridPanelLoaded == null) {
79
- gridPanelLoaded = new PromiseDelegate();
80
- gridPanelLoaded.resolve(await import('./gridpanel'));
75
+ if (this._grid) {
76
+ const { dataModel } = this._grid;
77
+ dataModel.filter = this._filter;
78
+ dataModel.scope = this._scope;
79
+ dataModel.setData((_a = this.model.scopes) !== null && _a !== void 0 ? _a : []);
81
80
  }
82
- return gridPanelLoaded.promise;
81
+ super.onUpdateRequest(msg);
83
82
  }
84
- Private.ensureGridPanel = ensureGridPanel;
85
- })(Private || (Private = {}));
83
+ }
86
84
  //# sourceMappingURL=grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/panels/variables/grid.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C;;;;OAIG;IACH,YAAY,OAAmC;QAC7C,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,GAAY;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;SACxB;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,UAAU;QACxB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5E,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAqB,EAAQ,EAAE;YAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM,CAAC,MAAmB;QAC3B,IAAI,CAAC,KAAK,CAAC,SAAuC,CAAC,MAAM,GAAG,MAAM,CAAC;QACpE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,IAAI,KAAK,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,CAAC,SAAuC,CAAC,KAAK,GAAG,KAAK,CAAC;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,OAAO;;QACb,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;IACzD,CAAC;CAKF;AAqCD;;GAEG;AACH,IAAU,OAAO,CAahB;AAbD,WAAU,OAAO;IACf,IAAI,eAAe,GAAmD,IAAI,CAAC;IAE3E;;OAEG;IACI,KAAK,UAAU,eAAe;QACnC,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YACxC,eAAe,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SACtD;QACD,OAAO,eAAe,CAAC,OAAO,CAAC;IACjC,CAAC;IANqB,uBAAe,kBAMpC,CAAA;AACH,CAAC,EAbS,OAAO,KAAP,OAAO,QAahB"}
1
+ {"version":3,"file":"grid.js","sourceRoot":"","sources":["../../../src/panels/variables/grid.ts"],"names":[],"mappings":"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"}
@@ -79,16 +79,14 @@ export declare class GridModel extends DataModel {
79
79
  */
80
80
  constructor(translator?: ITranslator);
81
81
  /**
82
- * Set the variable filter list.
82
+ * The variable filter list.
83
83
  */
84
+ get filter(): Set<string>;
84
85
  set filter(filter: Set<string>);
85
86
  /**
86
- * Get the current scope for the variables.
87
+ * The current scope for the variables.
87
88
  */
88
89
  get scope(): string;
89
- /**
90
- * Set the variable scope
91
- */
92
90
  set scope(scope: string);
93
91
  /**
94
92
  * Get the row count for a particular region in the data grid.
@@ -109,24 +109,23 @@ export class GridModel extends DataModel {
109
109
  value: [],
110
110
  variablesReference: []
111
111
  };
112
- translator = translator || nullTranslator;
113
- this._trans = translator.load('jupyterlab');
112
+ this._trans = (translator || nullTranslator).load('jupyterlab');
114
113
  }
115
114
  /**
116
- * Set the variable filter list.
115
+ * The variable filter list.
117
116
  */
117
+ get filter() {
118
+ return this._filter;
119
+ }
118
120
  set filter(filter) {
119
121
  this._filter = filter;
120
122
  }
121
123
  /**
122
- * Get the current scope for the variables.
124
+ * The current scope for the variables.
123
125
  */
124
126
  get scope() {
125
127
  return this._scope;
126
128
  }
127
- /**
128
- * Set the variable scope
129
- */
130
129
  set scope(scope) {
131
130
  this._scope = scope;
132
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gridpanel.js","sourceRoot":"","sources":["../../../src/panels/variables/gridpanel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gridpanel.js","sourceRoot":"","sources":["../../../src/panels/variables/gridpanel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/debugger",
3
- "version": "4.0.0-beta.0",
3
+ "version": "4.0.0-beta.1",
4
4
  "description": "JupyterLab - Debugger Extension",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -51,36 +51,36 @@
51
51
  "dependencies": {
52
52
  "@codemirror/state": "^6.2.0",
53
53
  "@codemirror/view": "^6.7.0",
54
- "@jupyter/ydoc": "^0.3.4",
55
- "@jupyterlab/application": "^4.0.0-beta.0",
56
- "@jupyterlab/apputils": "^4.0.0-beta.0",
57
- "@jupyterlab/cells": "^4.0.0-beta.0",
58
- "@jupyterlab/codeeditor": "^4.0.0-beta.0",
59
- "@jupyterlab/codemirror": "^4.0.0-beta.0",
60
- "@jupyterlab/console": "^4.0.0-beta.0",
61
- "@jupyterlab/coreutils": "^6.0.0-beta.0",
62
- "@jupyterlab/docregistry": "^4.0.0-beta.0",
63
- "@jupyterlab/fileeditor": "^4.0.0-beta.0",
64
- "@jupyterlab/notebook": "^4.0.0-beta.0",
65
- "@jupyterlab/observables": "^5.0.0-beta.0",
66
- "@jupyterlab/rendermime": "^4.0.0-beta.0",
67
- "@jupyterlab/services": "^7.0.0-beta.0",
68
- "@jupyterlab/translation": "^4.0.0-beta.0",
69
- "@jupyterlab/ui-components": "^4.0.0-beta.0",
54
+ "@jupyter/ydoc": "^1.0.0",
55
+ "@jupyterlab/application": "^4.0.0-beta.1",
56
+ "@jupyterlab/apputils": "^4.0.0-beta.1",
57
+ "@jupyterlab/cells": "^4.0.0-beta.1",
58
+ "@jupyterlab/codeeditor": "^4.0.0-beta.1",
59
+ "@jupyterlab/codemirror": "^4.0.0-beta.1",
60
+ "@jupyterlab/console": "^4.0.0-beta.1",
61
+ "@jupyterlab/coreutils": "^6.0.0-beta.1",
62
+ "@jupyterlab/docregistry": "^4.0.0-beta.1",
63
+ "@jupyterlab/fileeditor": "^4.0.0-beta.1",
64
+ "@jupyterlab/notebook": "^4.0.0-beta.1",
65
+ "@jupyterlab/observables": "^5.0.0-beta.1",
66
+ "@jupyterlab/rendermime": "^4.0.0-beta.1",
67
+ "@jupyterlab/services": "^7.0.0-beta.1",
68
+ "@jupyterlab/translation": "^4.0.0-beta.1",
69
+ "@jupyterlab/ui-components": "^4.0.0-beta.1",
70
70
  "@lumino/algorithm": "^2.0.0",
71
- "@lumino/commands": "^2.0.0",
71
+ "@lumino/commands": "^2.0.1",
72
72
  "@lumino/coreutils": "^2.0.0",
73
- "@lumino/datagrid": "^2.0.0",
73
+ "@lumino/datagrid": "^2.0.1",
74
74
  "@lumino/disposable": "^2.0.0",
75
75
  "@lumino/messaging": "^2.0.0",
76
76
  "@lumino/polling": "^2.0.0",
77
77
  "@lumino/signaling": "^2.0.0",
78
- "@lumino/widgets": "^2.0.0",
78
+ "@lumino/widgets": "^2.0.1",
79
79
  "@vscode/debugprotocol": "^1.51.0",
80
80
  "react": "^18.2.0"
81
81
  },
82
82
  "devDependencies": {
83
- "@jupyterlab/testing": "^4.0.0-beta.0",
83
+ "@jupyterlab/testing": "^4.0.0-beta.1",
84
84
  "@types/jest": "^29.2.0",
85
85
  "canvas": "^2.9.1",
86
86
  "jest": "^29.2.0",
@@ -19,7 +19,10 @@ export const SourcePathComponent = ({
19
19
  return (
20
20
  <UseSignal signal={model.currentSourceChanged} initialSender={model}>
21
21
  {(model): JSX.Element => (
22
- <span onClick={(): void => model?.open()}>
22
+ <span
23
+ onClick={(): void => model?.open()}
24
+ className="jp-DebuggerSources-header-path"
25
+ >
23
26
  {model?.currentSource?.path ?? ''}
24
27
  </span>
25
28
  )}
@@ -3,18 +3,17 @@
3
3
 
4
4
  import { IThemeManager } from '@jupyterlab/apputils';
5
5
 
6
+ import { ITranslator } from '@jupyterlab/translation';
7
+
6
8
  import { CommandRegistry } from '@lumino/commands';
7
9
 
10
+ import { Message } from '@lumino/messaging';
11
+
8
12
  import { Panel } from '@lumino/widgets';
9
13
 
10
14
  import { IDebugger } from '../../tokens';
11
15
 
12
- import { VariablesModel } from './model';
13
- import { ITranslator } from '@jupyterlab/translation';
14
-
15
16
  import type * as GridPanelModule from './gridpanel';
16
- import { PromiseDelegate } from '@lumino/coreutils';
17
- import { Message } from '@lumino/messaging';
18
17
 
19
18
  /**
20
19
  * A data grid that displays variables in a debugger session.
@@ -27,67 +26,87 @@ export class VariablesBodyGrid extends Panel {
27
26
  */
28
27
  constructor(options: VariablesBodyGrid.IOptions) {
29
28
  super();
30
-
31
- this._model = options.model;
32
- this._options = options;
33
-
29
+ this.commands = options.commands;
30
+ this.model = options.model;
31
+ this.themeManager = options.themeManager;
32
+ this.translator = options.translator;
33
+ this.model.changed.connect(() => this.update(), this);
34
34
  this.addClass('jp-DebuggerVariables-body');
35
35
  }
36
36
 
37
37
  /**
38
- * Wait until actually displaying the grid to trigger initialization.
38
+ * The variable filter list.
39
39
  */
40
- protected onBeforeShow(msg: Message): void {
41
- if (!this._grid) {
42
- void this.initialize();
43
- }
40
+ get filter(): Set<string> {
41
+ return this._filter;
42
+ }
43
+ set filter(filter: Set<string>) {
44
+ this._filter = filter;
45
+ this.update();
44
46
  }
45
47
 
46
48
  /**
47
- * Load the grid panel implementation.
49
+ * The current scope of the variables.
48
50
  */
49
- protected async initialize(): Promise<void> {
50
- const { model, commands, themeManager, scopes, translator } = this._options;
51
- const { Grid } = await Private.ensureGridPanel();
52
- this._grid = new Grid({ commands, model, themeManager, translator });
53
- this._grid.addClass('jp-DebuggerVariables-grid');
54
- this._model.changed.connect((model: VariablesModel): void => {
55
- this._update();
56
- }, this);
57
- this._grid.dataModel.setData(scopes ?? []);
58
- this.addWidget(this._grid);
51
+ get scope(): string {
52
+ return this._scope;
53
+ }
54
+ set scope(scope: string) {
55
+ this._scope = scope;
56
+ this.update();
59
57
  }
60
58
 
59
+ protected commands: CommandRegistry;
60
+ protected model: IDebugger.Model.IVariables;
61
+ protected themeManager: IThemeManager | null | undefined;
62
+ protected translator: ITranslator | undefined;
63
+
61
64
  /**
62
- * Set the variable filter list.
63
- *
64
- * @param filter The variable filter to apply.
65
+ * Load the grid panel implementation and instantiate a grid.
65
66
  */
66
- set filter(filter: Set<string>) {
67
- (this._grid.dataModel as GridPanelModule.GridModel).filter = filter;
68
- this._update();
67
+ protected async initialize(): Promise<void> {
68
+ if (this._grid || this._pending) {
69
+ return;
70
+ }
71
+
72
+ // Lazily load the datagrid module when the first grid is requested.
73
+ const { Grid } = await (this._pending = import('./gridpanel'));
74
+ const { commands, model, themeManager, translator } = this;
75
+
76
+ this._grid = new Grid({ commands, model, themeManager, translator });
77
+ this._grid.addClass('jp-DebuggerVariables-grid');
78
+ this._pending = null;
79
+ this.addWidget(this._grid);
80
+ this.update();
69
81
  }
70
82
 
71
83
  /**
72
- * Set the current scope.
73
- *
74
- * @param scope The current scope for the variables.
84
+ * Wait until actually displaying the grid to trigger initialization.
75
85
  */
76
- set scope(scope: string) {
77
- (this._grid.dataModel as GridPanelModule.GridModel).scope = scope;
78
- this._update();
86
+ protected onBeforeShow(msg: Message): void {
87
+ if (!this._grid && !this._pending) {
88
+ void this.initialize();
89
+ }
90
+ super.onBeforeShow(msg);
79
91
  }
80
92
 
81
93
  /**
82
- * Update the underlying data model
94
+ * Handle `update-request` messages.
83
95
  */
84
- private _update(): void {
85
- this._grid.dataModel.setData(this._model.scopes ?? []);
96
+ protected onUpdateRequest(msg: Message): void {
97
+ if (this._grid) {
98
+ const { dataModel } = this._grid;
99
+ dataModel.filter = this._filter;
100
+ dataModel.scope = this._scope;
101
+ dataModel.setData(this.model.scopes ?? []);
102
+ }
103
+ super.onUpdateRequest(msg);
86
104
  }
87
105
 
88
- private _grid: GridPanelModule.Grid;
89
- private _model: IDebugger.Model.IVariables;
90
- private _options: VariablesBodyGrid.IOptions;
106
+ private _filter: Set<string> = new Set();
107
+ private _grid: GridPanelModule.Grid | null = null;
108
+ private _pending: Promise<unknown> | null = null;
109
+ private _scope: string;
91
110
  }
92
111
 
93
112
  /**
@@ -124,21 +143,3 @@ export namespace VariablesBodyGrid {
124
143
  translator?: ITranslator;
125
144
  }
126
145
  }
127
-
128
- /**
129
- * A private namespace for managing lazy loading of the underlying grid panel.
130
- */
131
- namespace Private {
132
- let gridPanelLoaded: PromiseDelegate<typeof GridPanelModule> | null = null;
133
-
134
- /**
135
- * Lazily load the datagrid module when the first grid is requested.
136
- */
137
- export async function ensureGridPanel(): Promise<typeof GridPanelModule> {
138
- if (gridPanelLoaded == null) {
139
- gridPanelLoaded = new PromiseDelegate();
140
- gridPanelLoaded.resolve(await import('./gridpanel'));
141
- }
142
- return gridPanelLoaded.promise;
143
- }
144
- }
@@ -161,27 +161,25 @@ export class GridModel extends DataModel {
161
161
  */
162
162
  constructor(translator?: ITranslator) {
163
163
  super();
164
- translator = translator || nullTranslator;
165
- this._trans = translator.load('jupyterlab');
164
+ this._trans = (translator || nullTranslator).load('jupyterlab');
166
165
  }
167
166
 
168
167
  /**
169
- * Set the variable filter list.
168
+ * The variable filter list.
170
169
  */
170
+ get filter(): Set<string> {
171
+ return this._filter;
172
+ }
171
173
  set filter(filter: Set<string>) {
172
174
  this._filter = filter;
173
175
  }
174
176
 
175
177
  /**
176
- * Get the current scope for the variables.
178
+ * The current scope for the variables.
177
179
  */
178
180
  get scope(): string {
179
181
  return this._scope;
180
182
  }
181
-
182
- /**
183
- * Set the variable scope
184
- */
185
183
  set scope(scope: string) {
186
184
  this._scope = scope;
187
185
  }
@@ -23,12 +23,12 @@
23
23
  font-size: var(--jp-ui-font-size1);
24
24
  }
25
25
 
26
- .jp-DebuggerCallstack-body ul li {
26
+ .jp-DebuggerCallstack-body li {
27
27
  padding: 5px;
28
28
  padding-left: 8px;
29
29
  }
30
30
 
31
- .jp-DebuggerCallstack-body ul li.selected {
31
+ .jp-DebuggerCallstack-body li.selected {
32
32
  color: white;
33
33
  background: var(--jp-brand-color1);
34
34
  }
@@ -22,15 +22,6 @@
22
22
  overflow-y: auto;
23
23
  }
24
24
 
25
- .jp-DebuggerKernelSources-header > div > span {
26
- overflow: hidden;
27
- cursor: pointer;
28
- text-overflow: ellipsis;
29
- white-space: nowrap;
30
- font-size: var(--jp-ui-font-size0);
31
- color: var(--jp-ui-font-color1);
32
- }
33
-
34
25
  .jp-DebuggerKernelSource-filterBox {
35
26
  padding: 0;
36
27
  flex: 0 0 auto;
package/style/sources.css CHANGED
@@ -21,7 +21,7 @@
21
21
  height: 100%;
22
22
  }
23
23
 
24
- .jp-DebuggerSources-header > div > span {
24
+ .jp-DebuggerSources-header-path {
25
25
  overflow: hidden;
26
26
  cursor: pointer;
27
27
  text-overflow: ellipsis;