@jupyterlab/debugger 4.0.0-alpha.2 → 4.0.0-alpha.20
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.
- package/lib/debugger.d.ts +4 -0
- package/lib/debugger.js +5 -1
- package/lib/debugger.js.map +1 -1
- package/lib/dialogs/evaluate.d.ts +5 -0
- package/lib/dialogs/evaluate.js +16 -6
- package/lib/dialogs/evaluate.js.map +1 -1
- package/lib/factory.d.ts +1 -1
- package/lib/factory.js +15 -9
- package/lib/factory.js.map +1 -1
- package/lib/handler.js +24 -9
- package/lib/handler.js.map +1 -1
- package/lib/handlers/console.js +9 -3
- package/lib/handlers/console.js.map +1 -1
- package/lib/handlers/editor.d.ts +33 -11
- package/lib/handlers/editor.js +177 -88
- package/lib/handlers/editor.js.map +1 -1
- package/lib/handlers/file.d.ts +1 -0
- package/lib/handlers/file.js +11 -2
- package/lib/handlers/file.js.map +1 -1
- package/lib/handlers/notebook.d.ts +0 -7
- package/lib/handlers/notebook.js +22 -18
- package/lib/handlers/notebook.js.map +1 -1
- package/lib/icons.d.ts +3 -0
- package/lib/icons.js +15 -0
- package/lib/icons.js.map +1 -1
- package/lib/model.d.ts +5 -0
- package/lib/model.js +4 -0
- package/lib/model.js.map +1 -1
- package/lib/panels/breakpoints/index.d.ts +18 -0
- package/lib/panels/breakpoints/index.js +10 -3
- package/lib/panels/breakpoints/index.js.map +1 -1
- package/lib/panels/breakpoints/pauseonexceptions.d.ts +53 -0
- package/lib/panels/breakpoints/pauseonexceptions.js +98 -0
- package/lib/panels/breakpoints/pauseonexceptions.js.map +1 -0
- package/lib/panels/callstack/index.d.ts +1 -1
- package/lib/panels/kernelSources/body.d.ts +45 -0
- package/lib/panels/kernelSources/body.js +76 -0
- package/lib/panels/kernelSources/body.js.map +1 -0
- package/lib/panels/kernelSources/filter.d.ts +11 -0
- package/lib/panels/kernelSources/filter.js +18 -0
- package/lib/panels/kernelSources/filter.js.map +1 -0
- package/lib/panels/kernelSources/index.d.ts +39 -0
- package/lib/panels/kernelSources/index.js +54 -0
- package/lib/panels/kernelSources/index.js.map +1 -0
- package/lib/panels/kernelSources/model.d.ts +73 -0
- package/lib/panels/kernelSources/model.js +120 -0
- package/lib/panels/kernelSources/model.js.map +1 -0
- package/lib/panels/sources/body.js +5 -3
- package/lib/panels/sources/body.js.map +1 -1
- package/lib/panels/variables/grid.d.ts +8 -2
- package/lib/panels/variables/grid.js +29 -364
- package/lib/panels/variables/grid.js.map +1 -1
- package/lib/panels/variables/gridpanel.d.ts +140 -0
- package/lib/panels/variables/gridpanel.js +363 -0
- package/lib/panels/variables/gridpanel.js.map +1 -0
- package/lib/panels/variables/index.d.ts +1 -9
- package/lib/panels/variables/index.js +1 -15
- package/lib/panels/variables/index.js.map +1 -1
- package/lib/panels/variables/mimerenderer.d.ts +15 -2
- package/lib/panels/variables/mimerenderer.js +56 -17
- package/lib/panels/variables/mimerenderer.js.map +1 -1
- package/lib/panels/variables/model.d.ts +3 -0
- package/lib/panels/variables/model.js +7 -0
- package/lib/panels/variables/model.js.map +1 -1
- package/lib/panels/variables/scope.js +4 -0
- package/lib/panels/variables/scope.js.map +1 -1
- package/lib/panels/variables/tree.d.ts +2 -5
- package/lib/panels/variables/tree.js +137 -47
- package/lib/panels/variables/tree.js.map +1 -1
- package/lib/service.d.ts +32 -2
- package/lib/service.js +122 -9
- package/lib/service.js.map +1 -1
- package/lib/session.d.ts +37 -1
- package/lib/session.js +89 -6
- package/lib/session.js.map +1 -1
- package/lib/sidebar.d.ts +7 -1
- package/lib/sidebar.js +10 -2
- package/lib/sidebar.js.map +1 -1
- package/lib/sources.d.ts +2 -2
- package/lib/sources.js +32 -17
- package/lib/sources.js.map +1 -1
- package/lib/tokens.d.ts +139 -24
- package/lib/tokens.js.map +1 -1
- package/package.json +39 -47
- package/src/config.ts +78 -0
- package/src/debugger.ts +154 -0
- package/src/dialogs/evaluate.ts +144 -0
- package/src/factory.ts +72 -0
- package/src/handler.ts +528 -0
- package/src/handlers/console.ts +118 -0
- package/src/handlers/editor.ts +469 -0
- package/src/handlers/file.ts +86 -0
- package/src/handlers/notebook.ts +128 -0
- package/src/hash.ts +69 -0
- package/src/icons.ts +64 -0
- package/src/index.ts +16 -0
- package/src/model.ts +155 -0
- package/src/panels/breakpoints/body.tsx +145 -0
- package/src/panels/breakpoints/index.ts +116 -0
- package/src/panels/breakpoints/model.ts +74 -0
- package/src/panels/breakpoints/pauseonexceptions.tsx +141 -0
- package/src/panels/callstack/body.tsx +96 -0
- package/src/panels/callstack/index.ts +152 -0
- package/src/panels/callstack/model.ts +86 -0
- package/src/panels/kernelSources/body.tsx +139 -0
- package/src/panels/kernelSources/filter.tsx +44 -0
- package/src/panels/kernelSources/index.tsx +106 -0
- package/src/panels/kernelSources/model.ts +160 -0
- package/src/panels/sources/body.ts +161 -0
- package/src/panels/sources/index.tsx +85 -0
- package/src/panels/sources/model.ts +94 -0
- package/src/panels/sources/sourcepath.tsx +28 -0
- package/src/panels/variables/grid.ts +144 -0
- package/src/panels/variables/gridpanel.ts +455 -0
- package/src/panels/variables/index.ts +199 -0
- package/src/panels/variables/mimerenderer.ts +125 -0
- package/src/panels/variables/model.ts +61 -0
- package/src/panels/variables/scope.tsx +132 -0
- package/src/panels/variables/tree.tsx +521 -0
- package/src/service.ts +1009 -0
- package/src/session.ts +342 -0
- package/src/sidebar.ts +194 -0
- package/src/sources.ts +327 -0
- package/src/svg.d.ts +9 -0
- package/src/tokens.ts +1071 -0
- package/style/base.css +2 -1
- package/style/breakpoints.css +21 -12
- package/style/icons/arrow-collapse.svg +1 -1
- package/style/icons/arrow-expand.svg +1 -1
- package/style/icons/exceptions.svg +10 -0
- package/style/icons/open-kernel-source.svg +6 -0
- package/style/icons/pause.svg +6 -0
- package/style/icons.css +9 -8
- package/style/index.css +1 -1
- package/style/index.js +1 -1
- package/style/kernelSources.css +45 -0
- package/style/sidebar.css +1 -1
- package/style/variables.css +82 -21
package/lib/handlers/editor.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
import { ActivityMonitor } from '@jupyterlab/coreutils';
|
|
4
4
|
import { Signal } from '@lumino/signaling';
|
|
5
|
+
import { Compartment, Prec, RangeSet, StateEffect, StateField } from '@codemirror/state';
|
|
6
|
+
import { Decoration, EditorView, gutter, GutterMarker } from '@codemirror/view';
|
|
5
7
|
/**
|
|
6
8
|
* The class name added to the current line.
|
|
7
9
|
*/
|
|
@@ -21,55 +23,98 @@ export class EditorHandler {
|
|
|
21
23
|
*/
|
|
22
24
|
constructor(options) {
|
|
23
25
|
var _a, _b, _c, _d;
|
|
24
|
-
|
|
25
|
-
* Handle a click on the gutter.
|
|
26
|
-
*
|
|
27
|
-
* @param editor The editor from where the click originated.
|
|
28
|
-
* @param lineNumber The line corresponding to the click event.
|
|
29
|
-
*/
|
|
30
|
-
this._onGutterClick = (editor, lineNumber) => {
|
|
31
|
-
var _a, _b, _c;
|
|
32
|
-
const info = editor.lineInfo(lineNumber);
|
|
33
|
-
if (!info || this._id !== ((_b = (_a = this._debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.id)) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const remove = !!info.gutterMarkers;
|
|
37
|
-
let breakpoints = this._getBreakpoints();
|
|
38
|
-
if (remove) {
|
|
39
|
-
breakpoints = breakpoints.filter(ele => ele.line !== info.line + 1);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
breakpoints.push(Private.createBreakpoint((_c = this._path) !== null && _c !== void 0 ? _c : this._debuggerService.session.connection.name, info.line + 1));
|
|
43
|
-
}
|
|
44
|
-
void this._debuggerService.updateBreakpoints(this._editor.model.value.text, breakpoints, this._path);
|
|
45
|
-
};
|
|
26
|
+
this._src = options.src;
|
|
46
27
|
this._id = (_c = (_b = (_a = options.debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : '';
|
|
47
28
|
this._path = (_d = options.path) !== null && _d !== void 0 ? _d : '';
|
|
48
29
|
this._debuggerService = options.debuggerService;
|
|
49
|
-
this._editor = options.
|
|
30
|
+
this._editor = options.getEditor;
|
|
50
31
|
this._editorMonitor = new ActivityMonitor({
|
|
51
|
-
signal: this.
|
|
32
|
+
signal: this._src.changed,
|
|
52
33
|
timeout: EDITOR_CHANGED_TIMEOUT
|
|
53
34
|
});
|
|
54
35
|
this._editorMonitor.activityStopped.connect(() => {
|
|
55
36
|
this._sendEditorBreakpoints();
|
|
56
37
|
}, this);
|
|
57
38
|
this._debuggerService.model.breakpoints.changed.connect(async () => {
|
|
58
|
-
|
|
39
|
+
const editor = this.editor;
|
|
40
|
+
if (!editor || editor.isDisposed) {
|
|
59
41
|
return;
|
|
60
42
|
}
|
|
61
43
|
this._addBreakpointsToEditor();
|
|
62
44
|
});
|
|
63
45
|
this._debuggerService.model.breakpoints.restored.connect(async () => {
|
|
64
|
-
|
|
46
|
+
const editor = this.editor;
|
|
47
|
+
if (!editor || editor.isDisposed) {
|
|
65
48
|
return;
|
|
66
49
|
}
|
|
67
50
|
this._addBreakpointsToEditor();
|
|
68
51
|
});
|
|
69
52
|
this._debuggerService.model.callstack.currentFrameChanged.connect(() => {
|
|
70
|
-
|
|
53
|
+
const editor = this.editor;
|
|
54
|
+
if (editor) {
|
|
55
|
+
EditorHandler.clearHighlight(editor);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
this._breakpointEffect = StateEffect.define({
|
|
59
|
+
map: (value, mapping) => ({ pos: value.pos.map(v => mapping.mapPos(v)) })
|
|
60
|
+
});
|
|
61
|
+
this._breakpointState = StateField.define({
|
|
62
|
+
create: () => {
|
|
63
|
+
return RangeSet.empty;
|
|
64
|
+
},
|
|
65
|
+
update: (breakpoints, transaction) => {
|
|
66
|
+
breakpoints = breakpoints.map(transaction.changes);
|
|
67
|
+
for (let ef of transaction.effects) {
|
|
68
|
+
if (ef.is(this._breakpointEffect)) {
|
|
69
|
+
let e = ef;
|
|
70
|
+
if (e.value.pos.length) {
|
|
71
|
+
breakpoints = breakpoints.update({
|
|
72
|
+
add: e.value.pos.map(v => Private.breakpointMarker.range(v)),
|
|
73
|
+
sort: true
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
breakpoints = RangeSet.empty;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return breakpoints;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
this._gutter = new Compartment();
|
|
85
|
+
this._highlightDeco = Decoration.line({ class: LINE_HIGHLIGHT_CLASS });
|
|
86
|
+
this._highlightState = StateField.define({
|
|
87
|
+
create: () => {
|
|
88
|
+
return Decoration.none;
|
|
89
|
+
},
|
|
90
|
+
update: (highlights, transaction) => {
|
|
91
|
+
highlights = highlights.map(transaction.changes);
|
|
92
|
+
for (let ef of transaction.effects) {
|
|
93
|
+
if (ef.is(EditorHandler._highlightEffect)) {
|
|
94
|
+
let e = ef;
|
|
95
|
+
if (e.value.pos.length) {
|
|
96
|
+
highlights = highlights.update({
|
|
97
|
+
add: e.value.pos.map(v => this._highlightDeco.range(v))
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
highlights = Decoration.none;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return highlights;
|
|
106
|
+
},
|
|
107
|
+
provide: f => EditorView.decorations.from(f)
|
|
108
|
+
});
|
|
109
|
+
void options.editorReady().then(() => {
|
|
110
|
+
this._setupEditor();
|
|
71
111
|
});
|
|
72
|
-
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The editor
|
|
115
|
+
*/
|
|
116
|
+
get editor() {
|
|
117
|
+
return this._editor();
|
|
73
118
|
}
|
|
74
119
|
/**
|
|
75
120
|
* Dispose the handler.
|
|
@@ -83,86 +128,143 @@ export class EditorHandler {
|
|
|
83
128
|
this.isDisposed = true;
|
|
84
129
|
Signal.clearData(this);
|
|
85
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Refresh the breakpoints display
|
|
133
|
+
*/
|
|
134
|
+
refreshBreakpoints() {
|
|
135
|
+
this._addBreakpointsToEditor();
|
|
136
|
+
}
|
|
86
137
|
/**
|
|
87
138
|
* Setup the editor.
|
|
88
139
|
*/
|
|
89
140
|
_setupEditor() {
|
|
90
|
-
|
|
141
|
+
const editor = this.editor;
|
|
142
|
+
if (!editor || editor.isDisposed) {
|
|
91
143
|
return;
|
|
92
144
|
}
|
|
93
|
-
this._addBreakpointsToEditor();
|
|
94
|
-
const editor = this._editor;
|
|
95
145
|
editor.setOption('lineNumbers', true);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
146
|
+
const breakpointGutter = [
|
|
147
|
+
this._breakpointState,
|
|
148
|
+
this._highlightState,
|
|
149
|
+
Prec.highest(gutter({
|
|
150
|
+
class: 'cm-breakpoint-gutter',
|
|
151
|
+
renderEmptyElements: true,
|
|
152
|
+
markers: v => v.state.field(this._breakpointState),
|
|
153
|
+
initialSpacer: () => Private.breakpointMarker,
|
|
154
|
+
domEventHandlers: {
|
|
155
|
+
mousedown: (view, line) => {
|
|
156
|
+
this._onGutterClick(view, line.from);
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}))
|
|
161
|
+
];
|
|
162
|
+
editor.injectExtension(this._gutter.of(breakpointGutter));
|
|
163
|
+
this._addBreakpointsToEditor();
|
|
101
164
|
}
|
|
102
165
|
/**
|
|
103
166
|
* Clear the editor by removing visual elements and handlers.
|
|
104
167
|
*/
|
|
105
168
|
_clearEditor() {
|
|
106
|
-
|
|
169
|
+
const editor = this.editor;
|
|
170
|
+
if (!editor || editor.isDisposed) {
|
|
107
171
|
return;
|
|
108
172
|
}
|
|
109
|
-
const editor = this._editor;
|
|
110
173
|
EditorHandler.clearHighlight(editor);
|
|
111
|
-
|
|
174
|
+
this._clearGutter(editor);
|
|
112
175
|
editor.setOption('lineNumbers', false);
|
|
113
|
-
editor.editor.
|
|
114
|
-
|
|
176
|
+
editor.editor.dispatch({
|
|
177
|
+
effects: this._gutter.reconfigure([])
|
|
178
|
+
});
|
|
115
179
|
}
|
|
116
180
|
/**
|
|
117
181
|
* Send the breakpoints from the editor UI via the debug service.
|
|
118
182
|
*/
|
|
119
183
|
_sendEditorBreakpoints() {
|
|
120
|
-
|
|
184
|
+
var _a;
|
|
185
|
+
if ((_a = this.editor) === null || _a === void 0 ? void 0 : _a.isDisposed) {
|
|
121
186
|
return;
|
|
122
187
|
}
|
|
123
|
-
const breakpoints = this._getBreakpointsFromEditor().map(
|
|
188
|
+
const breakpoints = this._getBreakpointsFromEditor().map(lineNumber => {
|
|
124
189
|
var _a, _b;
|
|
125
|
-
return Private.createBreakpoint(((_b = (_a = this._debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.name) || '',
|
|
190
|
+
return Private.createBreakpoint(((_b = (_a = this._debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.name) || '', lineNumber);
|
|
191
|
+
});
|
|
192
|
+
void this._debuggerService.updateBreakpoints(this._src.getSource(), breakpoints, this._path);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Handle a click on the gutter.
|
|
196
|
+
*
|
|
197
|
+
* @param editor The editor from where the click originated.
|
|
198
|
+
* @param position The position corresponding to the click event.
|
|
199
|
+
*/
|
|
200
|
+
_onGutterClick(editor, position) {
|
|
201
|
+
var _a, _b, _c;
|
|
202
|
+
if (this._id !== ((_b = (_a = this._debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.id)) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const lineNumber = editor.state.doc.lineAt(position).number;
|
|
206
|
+
let stateBreakpoints = editor.state.field(this._breakpointState);
|
|
207
|
+
let hasBreakpoint = false;
|
|
208
|
+
stateBreakpoints.between(position, position, () => {
|
|
209
|
+
hasBreakpoint = true;
|
|
210
|
+
});
|
|
211
|
+
let breakpoints = this._getBreakpoints();
|
|
212
|
+
if (hasBreakpoint) {
|
|
213
|
+
breakpoints = breakpoints.filter(ele => ele.line !== lineNumber);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
breakpoints.push(Private.createBreakpoint((_c = this._path) !== null && _c !== void 0 ? _c : this._debuggerService.session.connection.name, lineNumber));
|
|
217
|
+
}
|
|
218
|
+
breakpoints.sort((a, b) => {
|
|
219
|
+
return a.line - b.line;
|
|
126
220
|
});
|
|
127
|
-
void this._debuggerService.updateBreakpoints(this.
|
|
221
|
+
void this._debuggerService.updateBreakpoints(this._src.getSource(), breakpoints, this._path);
|
|
128
222
|
}
|
|
129
223
|
/**
|
|
130
224
|
* Add the breakpoints to the editor.
|
|
131
225
|
*/
|
|
132
226
|
_addBreakpointsToEditor() {
|
|
133
227
|
var _a, _b;
|
|
134
|
-
const editor = this._editor;
|
|
135
|
-
const breakpoints = this._getBreakpoints();
|
|
136
228
|
if (this._id !== ((_b = (_a = this._debuggerService.session) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.id)) {
|
|
137
229
|
return;
|
|
138
230
|
}
|
|
139
|
-
|
|
140
|
-
breakpoints.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
231
|
+
const editor = this.editor;
|
|
232
|
+
const breakpoints = this._getBreakpoints();
|
|
233
|
+
this._clearGutter(editor);
|
|
234
|
+
const breakpointPos = breakpoints.map(b => {
|
|
235
|
+
return editor.state.doc.line(b.line).from;
|
|
236
|
+
});
|
|
237
|
+
editor.editor.dispatch({
|
|
238
|
+
effects: this._breakpointEffect.of({ pos: breakpointPos })
|
|
144
239
|
});
|
|
145
240
|
}
|
|
146
241
|
/**
|
|
147
242
|
* Retrieve the breakpoints from the editor.
|
|
148
243
|
*/
|
|
149
244
|
_getBreakpointsFromEditor() {
|
|
150
|
-
const editor = this.
|
|
245
|
+
const editor = this.editor;
|
|
246
|
+
const breakpoints = editor.editor.state.field(this._breakpointState);
|
|
151
247
|
let lines = [];
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
lines.push(info);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
248
|
+
breakpoints.between(0, editor.doc.length, (from) => {
|
|
249
|
+
lines.push(editor.doc.lineAt(from).number);
|
|
250
|
+
});
|
|
158
251
|
return lines;
|
|
159
252
|
}
|
|
253
|
+
_clearGutter(editor) {
|
|
254
|
+
if (!editor) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const view = editor.editor;
|
|
258
|
+
view.dispatch({
|
|
259
|
+
effects: this._breakpointEffect.of({ pos: [] })
|
|
260
|
+
});
|
|
261
|
+
}
|
|
160
262
|
/**
|
|
161
263
|
* Get the breakpoints for the editor using its content (code),
|
|
162
264
|
* or its path (if it exists).
|
|
163
265
|
*/
|
|
164
266
|
_getBreakpoints() {
|
|
165
|
-
const code = this.
|
|
267
|
+
const code = this._src.getSource();
|
|
166
268
|
return this._debuggerService.model.breakpoints.getBreakpoints(this._path || this._debuggerService.getCodeId(code));
|
|
167
269
|
}
|
|
168
270
|
}
|
|
@@ -170,6 +272,9 @@ export class EditorHandler {
|
|
|
170
272
|
* A namespace for EditorHandler `statics`.
|
|
171
273
|
*/
|
|
172
274
|
(function (EditorHandler) {
|
|
275
|
+
EditorHandler._highlightEffect = StateEffect.define({
|
|
276
|
+
map: (value, mapping) => ({ pos: value.pos.map(v => mapping.mapPos(v)) })
|
|
277
|
+
});
|
|
173
278
|
/**
|
|
174
279
|
* Highlight the current line of the frame in the given editor.
|
|
175
280
|
*
|
|
@@ -179,8 +284,10 @@ export class EditorHandler {
|
|
|
179
284
|
function showCurrentLine(editor, line) {
|
|
180
285
|
clearHighlight(editor);
|
|
181
286
|
const cmEditor = editor;
|
|
182
|
-
cmEditor.
|
|
183
|
-
cmEditor.
|
|
287
|
+
const linePos = cmEditor.doc.line(line).from;
|
|
288
|
+
cmEditor.editor.dispatch({
|
|
289
|
+
effects: EditorHandler._highlightEffect.of({ pos: [linePos] })
|
|
290
|
+
});
|
|
184
291
|
}
|
|
185
292
|
EditorHandler.showCurrentLine = showCurrentLine;
|
|
186
293
|
/**
|
|
@@ -193,28 +300,11 @@ export class EditorHandler {
|
|
|
193
300
|
return;
|
|
194
301
|
}
|
|
195
302
|
const cmEditor = editor;
|
|
196
|
-
cmEditor.
|
|
197
|
-
|
|
303
|
+
cmEditor.editor.dispatch({
|
|
304
|
+
effects: EditorHandler._highlightEffect.of({ pos: [] })
|
|
198
305
|
});
|
|
199
306
|
}
|
|
200
307
|
EditorHandler.clearHighlight = clearHighlight;
|
|
201
|
-
/**
|
|
202
|
-
* Remove line numbers and all gutters from editor.
|
|
203
|
-
*
|
|
204
|
-
* @param editor The editor to cleanup.
|
|
205
|
-
*/
|
|
206
|
-
function clearGutter(editor) {
|
|
207
|
-
if (!editor) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
const cmEditor = editor;
|
|
211
|
-
cmEditor.doc.eachLine(line => {
|
|
212
|
-
if (line.gutterMarkers) {
|
|
213
|
-
cmEditor.editor.setGutterMarker(line, 'breakpoints', null);
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
EditorHandler.clearGutter = clearGutter;
|
|
218
308
|
})(EditorHandler || (EditorHandler = {}));
|
|
219
309
|
/**
|
|
220
310
|
* A namespace for module private data.
|
|
@@ -224,13 +314,12 @@ var Private;
|
|
|
224
314
|
/**
|
|
225
315
|
* Create a marker DOM element for a breakpoint.
|
|
226
316
|
*/
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
Private.createMarkerNode = createMarkerNode;
|
|
317
|
+
Private.breakpointMarker = new (class extends GutterMarker {
|
|
318
|
+
toDOM() {
|
|
319
|
+
const marker = document.createTextNode('●');
|
|
320
|
+
return marker;
|
|
321
|
+
}
|
|
322
|
+
})();
|
|
234
323
|
/**
|
|
235
324
|
* Create a new breakpoint.
|
|
236
325
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/handlers/editor.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/handlers/editor.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/file.d.ts
CHANGED
package/lib/handlers/file.js
CHANGED
|
@@ -12,23 +12,32 @@ export class FileHandler {
|
|
|
12
12
|
* @param options The instantiation options for a FileHandler.
|
|
13
13
|
*/
|
|
14
14
|
constructor(options) {
|
|
15
|
+
var _a;
|
|
15
16
|
this._debuggerService = options.debuggerService;
|
|
16
17
|
this._fileEditor = options.widget.content;
|
|
18
|
+
this._hasLineNumber =
|
|
19
|
+
(_a = this._fileEditor.editor.getOption('lineNumbers')) !== null && _a !== void 0 ? _a : false;
|
|
17
20
|
this._editorHandler = new EditorHandler({
|
|
18
21
|
debuggerService: this._debuggerService,
|
|
19
|
-
|
|
22
|
+
editorReady: () => Promise.resolve(this._fileEditor.editor),
|
|
23
|
+
getEditor: () => this._fileEditor.editor,
|
|
24
|
+
src: this._fileEditor.model.sharedModel
|
|
20
25
|
});
|
|
21
26
|
}
|
|
22
27
|
/**
|
|
23
28
|
* Dispose the handler.
|
|
24
29
|
*/
|
|
25
30
|
dispose() {
|
|
26
|
-
var _a;
|
|
31
|
+
var _a, _b;
|
|
27
32
|
if (this.isDisposed) {
|
|
28
33
|
return;
|
|
29
34
|
}
|
|
30
35
|
this.isDisposed = true;
|
|
31
36
|
(_a = this._editorHandler) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
37
|
+
// Restore editor options
|
|
38
|
+
(_b = this._editorHandler) === null || _b === void 0 ? void 0 : _b.editor.setOptions({
|
|
39
|
+
lineNumbers: this._hasLineNumber
|
|
40
|
+
});
|
|
32
41
|
Signal.clearData(this);
|
|
33
42
|
}
|
|
34
43
|
}
|
package/lib/handlers/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/handlers/file.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAQ3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;;;OAIG;IACH,YAAY,OAA6B
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/handlers/file.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAQ3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;;;OAIG;IACH,YAAY,OAA6B;;QACvC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1C,IAAI,CAAC,cAAc;YACjB,MAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAElC,mCAAI,KAAK,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC;YACtC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3D,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;YACxC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW;SACxC,CAAC,CAAC;IACL,CAAC;IAOD;;OAEG;IACH,OAAO;;QACL,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,EAAE,CAAC;QAC/B,yBAAyB;QACzB,MAAA,IAAI,CAAC,cAAc,0CAAE,MAAM,CAAE,UAAU,CAAC;YACtC,WAAW,EAAE,IAAI,CAAC,cAAc;SACjC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CAMF"}
|
|
@@ -29,13 +29,6 @@ export declare class NotebookHandler implements IDisposable {
|
|
|
29
29
|
* @param cell The cell to add the handler to.
|
|
30
30
|
*/
|
|
31
31
|
private _addEditorHandler;
|
|
32
|
-
/**
|
|
33
|
-
* Handle a new active cell.
|
|
34
|
-
*
|
|
35
|
-
* @param notebook The notebook for which the active cell has changed.
|
|
36
|
-
* @param cell The new active cell.
|
|
37
|
-
*/
|
|
38
|
-
private _onActiveCellChanged;
|
|
39
32
|
private _debuggerService;
|
|
40
33
|
private _notebookPanel;
|
|
41
34
|
private _cellMap;
|
package/lib/handlers/notebook.js
CHANGED
|
@@ -13,13 +13,11 @@ export class NotebookHandler {
|
|
|
13
13
|
* @param options The instantiation options for a NotebookHandler.
|
|
14
14
|
*/
|
|
15
15
|
constructor(options) {
|
|
16
|
-
var _a;
|
|
17
16
|
this._debuggerService = options.debuggerService;
|
|
18
17
|
this._notebookPanel = options.widget;
|
|
19
18
|
this._cellMap = new ObservableMap();
|
|
20
19
|
const notebook = this._notebookPanel.content;
|
|
21
|
-
notebook.
|
|
22
|
-
(_a = notebook.model) === null || _a === void 0 ? void 0 : _a.cells.changed.connect(this._onCellsChanged, this);
|
|
20
|
+
notebook.model.cells.changed.connect(this._onCellsChanged, this);
|
|
23
21
|
this._onCellsChanged();
|
|
24
22
|
}
|
|
25
23
|
/**
|
|
@@ -30,15 +28,28 @@ export class NotebookHandler {
|
|
|
30
28
|
return;
|
|
31
29
|
}
|
|
32
30
|
this.isDisposed = true;
|
|
33
|
-
this._cellMap.values().forEach(handler =>
|
|
31
|
+
this._cellMap.values().forEach(handler => {
|
|
32
|
+
var _a;
|
|
33
|
+
handler.dispose();
|
|
34
|
+
// Ensure to restore notebook editor settings
|
|
35
|
+
(_a = handler.editor) === null || _a === void 0 ? void 0 : _a.setOptions({
|
|
36
|
+
...this._notebookPanel.content.editorConfig.code
|
|
37
|
+
});
|
|
38
|
+
});
|
|
34
39
|
this._cellMap.dispose();
|
|
35
40
|
Signal.clearData(this);
|
|
36
41
|
}
|
|
37
42
|
/**
|
|
38
43
|
* Handle a notebook cells changed event.
|
|
39
44
|
*/
|
|
40
|
-
_onCellsChanged() {
|
|
45
|
+
_onCellsChanged(cells, changes) {
|
|
46
|
+
var _a;
|
|
41
47
|
this._notebookPanel.content.widgets.forEach(cell => this._addEditorHandler(cell));
|
|
48
|
+
if ((changes === null || changes === void 0 ? void 0 : changes.type) === 'move') {
|
|
49
|
+
for (const cell of changes.newValues) {
|
|
50
|
+
(_a = this._cellMap.get(cell.id)) === null || _a === void 0 ? void 0 : _a.refreshBreakpoints();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
44
55
|
* Add a new editor handler for the given cell.
|
|
@@ -53,7 +64,12 @@ export class NotebookHandler {
|
|
|
53
64
|
const codeCell = cell;
|
|
54
65
|
const editorHandler = new EditorHandler({
|
|
55
66
|
debuggerService: this._debuggerService,
|
|
56
|
-
|
|
67
|
+
editorReady: async () => {
|
|
68
|
+
await codeCell.ready;
|
|
69
|
+
return codeCell.editor;
|
|
70
|
+
},
|
|
71
|
+
getEditor: () => codeCell.editor,
|
|
72
|
+
src: cell.model.sharedModel
|
|
57
73
|
});
|
|
58
74
|
codeCell.disposed.connect(() => {
|
|
59
75
|
this._cellMap.delete(modelId);
|
|
@@ -61,17 +77,5 @@ export class NotebookHandler {
|
|
|
61
77
|
});
|
|
62
78
|
this._cellMap.set(cell.model.id, editorHandler);
|
|
63
79
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Handle a new active cell.
|
|
66
|
-
*
|
|
67
|
-
* @param notebook The notebook for which the active cell has changed.
|
|
68
|
-
* @param cell The new active cell.
|
|
69
|
-
*/
|
|
70
|
-
_onActiveCellChanged(notebook, cell) {
|
|
71
|
-
if (this._notebookPanel.content !== notebook) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
this._addEditorHandler(cell);
|
|
75
|
-
}
|
|
76
80
|
}
|
|
77
81
|
//# sourceMappingURL=notebook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/handlers/notebook.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,
|
|
1
|
+
{"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/handlers/notebook.ts"],"names":[],"mappings":"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"}
|
package/lib/icons.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { LabIcon } from '@jupyterlab/ui-components';
|
|
2
2
|
export { runIcon as continueIcon, stopIcon as terminateIcon } from '@jupyterlab/ui-components';
|
|
3
3
|
export declare const closeAllIcon: LabIcon;
|
|
4
|
+
export declare const exceptionIcon: LabIcon;
|
|
5
|
+
export declare const pauseIcon: LabIcon;
|
|
4
6
|
export declare const stepIntoIcon: LabIcon;
|
|
5
7
|
export declare const stepOverIcon: LabIcon;
|
|
6
8
|
export declare const stepOutIcon: LabIcon;
|
|
7
9
|
export declare const variableIcon: LabIcon;
|
|
8
10
|
export declare const viewBreakpointIcon: LabIcon;
|
|
11
|
+
export declare const openKernelSourceIcon: LabIcon;
|
package/lib/icons.js
CHANGED
|
@@ -6,12 +6,23 @@ import stepIntoSvgStr from '../style/icons/step-into.svg';
|
|
|
6
6
|
import stepOutSvgStr from '../style/icons/step-out.svg';
|
|
7
7
|
import stepOverSvgStr from '../style/icons/step-over.svg';
|
|
8
8
|
import variableSvgStr from '../style/icons/variable.svg';
|
|
9
|
+
import pauseSvgStr from '../style/icons/pause.svg';
|
|
9
10
|
import viewBreakpointSvgStr from '../style/icons/view-breakpoint.svg';
|
|
11
|
+
import openKernelSourceSvgStr from '../style/icons/open-kernel-source.svg';
|
|
12
|
+
import exceptionSvgStr from '../style/icons/exceptions.svg';
|
|
10
13
|
export { runIcon as continueIcon, stopIcon as terminateIcon } from '@jupyterlab/ui-components';
|
|
11
14
|
export const closeAllIcon = new LabIcon({
|
|
12
15
|
name: 'debugger:close-all',
|
|
13
16
|
svgstr: closeAllSvgStr
|
|
14
17
|
});
|
|
18
|
+
export const exceptionIcon = new LabIcon({
|
|
19
|
+
name: 'debugger:pause-on-exception',
|
|
20
|
+
svgstr: exceptionSvgStr
|
|
21
|
+
});
|
|
22
|
+
export const pauseIcon = new LabIcon({
|
|
23
|
+
name: 'debugger:pause',
|
|
24
|
+
svgstr: pauseSvgStr
|
|
25
|
+
});
|
|
15
26
|
export const stepIntoIcon = new LabIcon({
|
|
16
27
|
name: 'debugger:step-into',
|
|
17
28
|
svgstr: stepIntoSvgStr
|
|
@@ -32,4 +43,8 @@ export const viewBreakpointIcon = new LabIcon({
|
|
|
32
43
|
name: 'debugger:view-breakpoint',
|
|
33
44
|
svgstr: viewBreakpointSvgStr
|
|
34
45
|
});
|
|
46
|
+
export const openKernelSourceIcon = new LabIcon({
|
|
47
|
+
name: 'debugger:open-kernel-source',
|
|
48
|
+
svgstr: openKernelSourceSvgStr
|
|
49
|
+
});
|
|
35
50
|
//# sourceMappingURL=icons.js.map
|