@theia/notebook 1.41.0

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.
Files changed (188) hide show
  1. package/README.md +30 -0
  2. package/lib/browser/contributions/notebook-actions-contribution.d.ts +27 -0
  3. package/lib/browser/contributions/notebook-actions-contribution.d.ts.map +1 -0
  4. package/lib/browser/contributions/notebook-actions-contribution.js +172 -0
  5. package/lib/browser/contributions/notebook-actions-contribution.js.map +1 -0
  6. package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts +30 -0
  7. package/lib/browser/contributions/notebook-cell-actions-contribution.d.ts.map +1 -0
  8. package/lib/browser/contributions/notebook-cell-actions-contribution.js +200 -0
  9. package/lib/browser/contributions/notebook-cell-actions-contribution.js.map +1 -0
  10. package/lib/browser/contributions/notebook-color-contribution.d.ts +6 -0
  11. package/lib/browser/contributions/notebook-color-contribution.d.ts.map +1 -0
  12. package/lib/browser/contributions/notebook-color-contribution.js +252 -0
  13. package/lib/browser/contributions/notebook-color-contribution.js.map +1 -0
  14. package/lib/browser/contributions/notebook-context-keys.d.ts +38 -0
  15. package/lib/browser/contributions/notebook-context-keys.d.ts.map +1 -0
  16. package/lib/browser/contributions/notebook-context-keys.js +95 -0
  17. package/lib/browser/contributions/notebook-context-keys.js.map +1 -0
  18. package/lib/browser/index.d.ts +11 -0
  19. package/lib/browser/index.d.ts.map +1 -0
  20. package/lib/browser/index.js +38 -0
  21. package/lib/browser/index.js.map +1 -0
  22. package/lib/browser/notebook-cell-resource-resolver.d.ts +20 -0
  23. package/lib/browser/notebook-cell-resource-resolver.d.ts.map +1 -0
  24. package/lib/browser/notebook-cell-resource-resolver.js +75 -0
  25. package/lib/browser/notebook-cell-resource-resolver.js.map +1 -0
  26. package/lib/browser/notebook-editor-widget-factory.d.ts +17 -0
  27. package/lib/browser/notebook-editor-widget-factory.d.ts.map +1 -0
  28. package/lib/browser/notebook-editor-widget-factory.js +78 -0
  29. package/lib/browser/notebook-editor-widget-factory.js.map +1 -0
  30. package/lib/browser/notebook-editor-widget.d.ts +49 -0
  31. package/lib/browser/notebook-editor-widget.d.ts.map +1 -0
  32. package/lib/browser/notebook-editor-widget.js +150 -0
  33. package/lib/browser/notebook-editor-widget.js.map +1 -0
  34. package/lib/browser/notebook-frontend-module.d.ts +5 -0
  35. package/lib/browser/notebook-frontend-module.d.ts.map +1 -0
  36. package/lib/browser/notebook-frontend-module.js +81 -0
  37. package/lib/browser/notebook-frontend-module.js.map +1 -0
  38. package/lib/browser/notebook-open-handler.d.ts +18 -0
  39. package/lib/browser/notebook-open-handler.d.ts.map +1 -0
  40. package/lib/browser/notebook-open-handler.js +94 -0
  41. package/lib/browser/notebook-open-handler.js.map +1 -0
  42. package/lib/browser/notebook-renderer-registry.d.ts +17 -0
  43. package/lib/browser/notebook-renderer-registry.d.ts.map +1 -0
  44. package/lib/browser/notebook-renderer-registry.js +63 -0
  45. package/lib/browser/notebook-renderer-registry.js.map +1 -0
  46. package/lib/browser/notebook-type-registry.d.ts +7 -0
  47. package/lib/browser/notebook-type-registry.d.ts.map +1 -0
  48. package/lib/browser/notebook-type-registry.js +42 -0
  49. package/lib/browser/notebook-type-registry.js.map +1 -0
  50. package/lib/browser/renderers/cell-output-webview.d.ts +12 -0
  51. package/lib/browser/renderers/cell-output-webview.d.ts.map +1 -0
  52. package/lib/browser/renderers/cell-output-webview.js +20 -0
  53. package/lib/browser/renderers/cell-output-webview.js.map +1 -0
  54. package/lib/browser/service/notebook-cell-context-manager.d.ts +16 -0
  55. package/lib/browser/service/notebook-cell-context-manager.d.ts.map +1 -0
  56. package/lib/browser/service/notebook-cell-context-manager.js +83 -0
  57. package/lib/browser/service/notebook-cell-context-manager.js.map +1 -0
  58. package/lib/browser/service/notebook-editor-service.d.ts +22 -0
  59. package/lib/browser/service/notebook-editor-service.d.ts.map +1 -0
  60. package/lib/browser/service/notebook-editor-service.js +95 -0
  61. package/lib/browser/service/notebook-editor-service.js.map +1 -0
  62. package/lib/browser/service/notebook-execution-service.d.ts +25 -0
  63. package/lib/browser/service/notebook-execution-service.d.ts.map +1 -0
  64. package/lib/browser/service/notebook-execution-service.js +140 -0
  65. package/lib/browser/service/notebook-execution-service.js.map +1 -0
  66. package/lib/browser/service/notebook-execution-state-service.d.ts +94 -0
  67. package/lib/browser/service/notebook-execution-state-service.d.ts.map +1 -0
  68. package/lib/browser/service/notebook-execution-state-service.js +250 -0
  69. package/lib/browser/service/notebook-execution-state-service.js.map +1 -0
  70. package/lib/browser/service/notebook-kernel-history-service.d.ts +23 -0
  71. package/lib/browser/service/notebook-kernel-history-service.d.ts.map +1 -0
  72. package/lib/browser/service/notebook-kernel-history-service.js +109 -0
  73. package/lib/browser/service/notebook-kernel-history-service.js.map +1 -0
  74. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts +65 -0
  75. package/lib/browser/service/notebook-kernel-quick-pick-service.d.ts.map +1 -0
  76. package/lib/browser/service/notebook-kernel-quick-pick-service.js +430 -0
  77. package/lib/browser/service/notebook-kernel-quick-pick-service.js.map +1 -0
  78. package/lib/browser/service/notebook-kernel-service.d.ts +112 -0
  79. package/lib/browser/service/notebook-kernel-service.d.ts.map +1 -0
  80. package/lib/browser/service/notebook-kernel-service.js +274 -0
  81. package/lib/browser/service/notebook-kernel-service.js.map +1 -0
  82. package/lib/browser/service/notebook-model-resolver-service.d.ts +26 -0
  83. package/lib/browser/service/notebook-model-resolver-service.d.ts.map +1 -0
  84. package/lib/browser/service/notebook-model-resolver-service.js +139 -0
  85. package/lib/browser/service/notebook-model-resolver-service.js.map +1 -0
  86. package/lib/browser/service/notebook-renderer-messaging-service.d.ts +30 -0
  87. package/lib/browser/service/notebook-renderer-messaging-service.d.ts.map +1 -0
  88. package/lib/browser/service/notebook-renderer-messaging-service.js +94 -0
  89. package/lib/browser/service/notebook-renderer-messaging-service.js.map +1 -0
  90. package/lib/browser/service/notebook-service.d.ts +64 -0
  91. package/lib/browser/service/notebook-service.d.ts.map +1 -0
  92. package/lib/browser/service/notebook-service.js +162 -0
  93. package/lib/browser/service/notebook-service.js.map +1 -0
  94. package/lib/browser/view/notebook-cell-editor.d.ts +26 -0
  95. package/lib/browser/view/notebook-cell-editor.d.ts.map +1 -0
  96. package/lib/browser/view/notebook-cell-editor.js +79 -0
  97. package/lib/browser/view/notebook-cell-editor.js.map +1 -0
  98. package/lib/browser/view/notebook-cell-list-view.d.ts +43 -0
  99. package/lib/browser/view/notebook-cell-list-view.d.ts.map +1 -0
  100. package/lib/browser/view/notebook-cell-list-view.js +111 -0
  101. package/lib/browser/view/notebook-cell-list-view.js.map +1 -0
  102. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts +25 -0
  103. package/lib/browser/view/notebook-cell-toolbar-factory.d.ts.map +1 -0
  104. package/lib/browser/view/notebook-cell-toolbar-factory.js +93 -0
  105. package/lib/browser/view/notebook-cell-toolbar-factory.js.map +1 -0
  106. package/lib/browser/view/notebook-cell-toolbar.d.ts +25 -0
  107. package/lib/browser/view/notebook-cell-toolbar.d.ts.map +1 -0
  108. package/lib/browser/view/notebook-cell-toolbar.js +50 -0
  109. package/lib/browser/view/notebook-cell-toolbar.js.map +1 -0
  110. package/lib/browser/view/notebook-code-cell-view.d.ts +47 -0
  111. package/lib/browser/view/notebook-code-cell-view.d.ts.map +1 -0
  112. package/lib/browser/view/notebook-code-cell-view.js +166 -0
  113. package/lib/browser/view/notebook-code-cell-view.js.map +1 -0
  114. package/lib/browser/view/notebook-main-toolbar.d.ts +31 -0
  115. package/lib/browser/view/notebook-main-toolbar.d.ts.map +1 -0
  116. package/lib/browser/view/notebook-main-toolbar.js +118 -0
  117. package/lib/browser/view/notebook-main-toolbar.js.map +1 -0
  118. package/lib/browser/view/notebook-markdown-cell-view.d.ts +12 -0
  119. package/lib/browser/view/notebook-markdown-cell-view.d.ts.map +1 -0
  120. package/lib/browser/view/notebook-markdown-cell-view.js +70 -0
  121. package/lib/browser/view/notebook-markdown-cell-view.js.map +1 -0
  122. package/lib/browser/view-model/notebook-cell-model.d.ts +74 -0
  123. package/lib/browser/view-model/notebook-cell-model.d.ts.map +1 -0
  124. package/lib/browser/view-model/notebook-cell-model.js +226 -0
  125. package/lib/browser/view-model/notebook-cell-model.js.map +1 -0
  126. package/lib/browser/view-model/notebook-cell-output-model.d.ts +19 -0
  127. package/lib/browser/view-model/notebook-cell-output-model.d.ts.map +1 -0
  128. package/lib/browser/view-model/notebook-cell-output-model.js +61 -0
  129. package/lib/browser/view-model/notebook-cell-output-model.js.map +1 -0
  130. package/lib/browser/view-model/notebook-model.d.ts +59 -0
  131. package/lib/browser/view-model/notebook-model.d.ts.map +1 -0
  132. package/lib/browser/view-model/notebook-model.js +315 -0
  133. package/lib/browser/view-model/notebook-model.js.map +1 -0
  134. package/lib/common/index.d.ts +3 -0
  135. package/lib/common/index.d.ts.map +1 -0
  136. package/lib/common/index.js +30 -0
  137. package/lib/common/index.js.map +1 -0
  138. package/lib/common/notebook-common.d.ts +344 -0
  139. package/lib/common/notebook-common.d.ts.map +1 -0
  140. package/lib/common/notebook-common.js +112 -0
  141. package/lib/common/notebook-common.js.map +1 -0
  142. package/lib/common/notebook-protocol.d.ts +21 -0
  143. package/lib/common/notebook-protocol.d.ts.map +1 -0
  144. package/lib/common/notebook-protocol.js +18 -0
  145. package/lib/common/notebook-protocol.js.map +1 -0
  146. package/lib/common/notebook-range.d.ts +14 -0
  147. package/lib/common/notebook-range.d.ts.map +1 -0
  148. package/lib/common/notebook-range.js +18 -0
  149. package/lib/common/notebook-range.js.map +1 -0
  150. package/package.json +52 -0
  151. package/src/browser/contributions/notebook-actions-contribution.ts +171 -0
  152. package/src/browser/contributions/notebook-cell-actions-contribution.ts +204 -0
  153. package/src/browser/contributions/notebook-color-contribution.ts +268 -0
  154. package/src/browser/contributions/notebook-context-keys.ts +99 -0
  155. package/src/browser/index.ts +26 -0
  156. package/src/browser/notebook-cell-resource-resolver.ts +79 -0
  157. package/src/browser/notebook-editor-widget-factory.ts +70 -0
  158. package/src/browser/notebook-editor-widget.tsx +157 -0
  159. package/src/browser/notebook-frontend-module.ts +95 -0
  160. package/src/browser/notebook-open-handler.ts +87 -0
  161. package/src/browser/notebook-renderer-registry.ts +62 -0
  162. package/src/browser/notebook-type-registry.ts +30 -0
  163. package/src/browser/renderers/cell-output-webview.ts +32 -0
  164. package/src/browser/service/notebook-cell-context-manager.ts +70 -0
  165. package/src/browser/service/notebook-editor-service.ts +86 -0
  166. package/src/browser/service/notebook-execution-service.ts +139 -0
  167. package/src/browser/service/notebook-execution-state-service.ts +322 -0
  168. package/src/browser/service/notebook-kernel-history-service.ts +109 -0
  169. package/src/browser/service/notebook-kernel-quick-pick-service.ts +494 -0
  170. package/src/browser/service/notebook-kernel-service.ts +357 -0
  171. package/src/browser/service/notebook-model-resolver-service.ts +141 -0
  172. package/src/browser/service/notebook-renderer-messaging-service.ts +111 -0
  173. package/src/browser/service/notebook-service.ts +178 -0
  174. package/src/browser/style/index.css +236 -0
  175. package/src/browser/view/notebook-cell-editor.tsx +97 -0
  176. package/src/browser/view/notebook-cell-list-view.tsx +171 -0
  177. package/src/browser/view/notebook-cell-toolbar-factory.tsx +91 -0
  178. package/src/browser/view/notebook-cell-toolbar.tsx +70 -0
  179. package/src/browser/view/notebook-code-cell-view.tsx +190 -0
  180. package/src/browser/view/notebook-main-toolbar.tsx +115 -0
  181. package/src/browser/view/notebook-markdown-cell-view.tsx +73 -0
  182. package/src/browser/view-model/notebook-cell-model.ts +271 -0
  183. package/src/browser/view-model/notebook-cell-output-model.ts +69 -0
  184. package/src/browser/view-model/notebook-model.ts +372 -0
  185. package/src/common/index.ts +18 -0
  186. package/src/common/notebook-common.ts +462 -0
  187. package/src/common/notebook-protocol.ts +35 -0
  188. package/src/common/notebook-range.ts +30 -0
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
22
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
23
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
24
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
25
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
26
+ };
27
+ var __metadata = (this && this.__metadata) || function (k, v) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.updateToEdit = exports.CellExecutionStateChangedEvent = exports.CellExecution = exports.NotebookExecutionStateService = exports.NotebookExecutionType = void 0;
32
+ const core_1 = require("@theia/core");
33
+ const inversify_1 = require("@theia/core/shared/inversify");
34
+ const notebook_service_1 = require("./notebook-service");
35
+ const common_1 = require("../../common");
36
+ const uuid_1 = require("uuid");
37
+ var NotebookExecutionType;
38
+ (function (NotebookExecutionType) {
39
+ NotebookExecutionType[NotebookExecutionType["cell"] = 0] = "cell";
40
+ NotebookExecutionType[NotebookExecutionType["notebook"] = 1] = "notebook";
41
+ })(NotebookExecutionType = exports.NotebookExecutionType || (exports.NotebookExecutionType = {}));
42
+ let NotebookExecutionStateService = class NotebookExecutionStateService {
43
+ constructor() {
44
+ this.executions = new Map();
45
+ this.onDidChangeExecutionEmitter = new core_1.Emitter();
46
+ this.onDidChangeExecution = this.onDidChangeExecutionEmitter.event;
47
+ this.onDidChangeLastRunFailStateEmitter = new core_1.Emitter();
48
+ this.onDidChangeLastRunFailState = this.onDidChangeLastRunFailStateEmitter.event;
49
+ }
50
+ createCellExecution(notebookUri, cellHandle) {
51
+ const notebook = this.notebookService.getNotebookEditorModel(notebookUri);
52
+ if (!notebook) {
53
+ throw new Error(`Notebook not found: ${notebookUri.toString()}`);
54
+ }
55
+ let execution = this.executions.get(`${notebookUri}/${cellHandle}`);
56
+ if (!execution) {
57
+ execution = this.createNotebookCellExecution(notebook, cellHandle);
58
+ this.executions.set(`${notebookUri}/${cellHandle}`, execution);
59
+ execution.initialize();
60
+ this.onDidChangeExecutionEmitter.fire(new CellExecutionStateChangedEvent(notebookUri, cellHandle, execution));
61
+ }
62
+ return execution;
63
+ }
64
+ createNotebookCellExecution(notebook, cellHandle) {
65
+ const notebookUri = notebook.uri;
66
+ const execution = new CellExecution(cellHandle, notebook);
67
+ execution.onDidUpdate(() => this.onDidChangeExecutionEmitter.fire(new CellExecutionStateChangedEvent(notebookUri, cellHandle, execution)));
68
+ execution.onDidComplete(lastRunSuccess => this.onCellExecutionDidComplete(notebookUri, cellHandle, execution, lastRunSuccess));
69
+ return execution;
70
+ }
71
+ onCellExecutionDidComplete(notebookUri, cellHandle, exe, lastRunSuccess) {
72
+ const notebookExecutions = this.executions.get(`${notebookUri}/${cellHandle}`);
73
+ if (!notebookExecutions) {
74
+ return;
75
+ }
76
+ exe.dispose();
77
+ this.executions.delete(`${notebookUri}/${cellHandle}`);
78
+ this.onDidChangeExecutionEmitter.fire(new CellExecutionStateChangedEvent(notebookUri, cellHandle));
79
+ }
80
+ getCellExecution(cellUri) {
81
+ const parsed = common_1.CellUri.parse(cellUri);
82
+ if (!parsed) {
83
+ throw new Error(`Not a cell URI: ${cellUri}`);
84
+ }
85
+ return this.executions.get(`${parsed.notebook.toString()}/${parsed.handle}`);
86
+ }
87
+ dispose() {
88
+ this.onDidChangeExecutionEmitter.dispose();
89
+ this.onDidChangeLastRunFailStateEmitter.dispose();
90
+ this.executions.forEach(cellExecution => cellExecution.dispose());
91
+ }
92
+ };
93
+ __decorate([
94
+ (0, inversify_1.inject)(notebook_service_1.NotebookService),
95
+ __metadata("design:type", notebook_service_1.NotebookService)
96
+ ], NotebookExecutionStateService.prototype, "notebookService", void 0);
97
+ NotebookExecutionStateService = __decorate([
98
+ (0, inversify_1.injectable)()
99
+ ], NotebookExecutionStateService);
100
+ exports.NotebookExecutionStateService = NotebookExecutionStateService;
101
+ class CellExecution {
102
+ constructor(cellHandle, notebook) {
103
+ this.cellHandle = cellHandle;
104
+ this.notebook = notebook;
105
+ this.onDidUpdateEmitter = new core_1.Emitter();
106
+ this.onDidUpdate = this.onDidUpdateEmitter.event;
107
+ this.onDidCompleteEmitter = new core_1.Emitter();
108
+ this.onDidComplete = this.onDidCompleteEmitter.event;
109
+ this._state = common_1.NotebookCellExecutionState.Unconfirmed;
110
+ this._didPause = false;
111
+ this._isPaused = false;
112
+ console.debug(`CellExecution#ctor ${this.getCellLog()}`);
113
+ }
114
+ get state() {
115
+ return this._state;
116
+ }
117
+ get notebookURI() {
118
+ return this.notebook.uri;
119
+ }
120
+ get didPause() {
121
+ return this._didPause;
122
+ }
123
+ get isPaused() {
124
+ return this._isPaused;
125
+ }
126
+ initialize() {
127
+ const startExecuteEdit = {
128
+ editType: 9 /* PartialInternalMetadata */,
129
+ handle: this.cellHandle,
130
+ internalMetadata: {
131
+ executionId: (0, uuid_1.v4)(),
132
+ runStartTime: undefined,
133
+ runEndTime: undefined,
134
+ lastRunSuccess: undefined,
135
+ executionOrder: undefined,
136
+ renderDuration: undefined,
137
+ }
138
+ };
139
+ this.applyExecutionEdits([startExecuteEdit]);
140
+ }
141
+ getCellLog() {
142
+ return `${this.notebookURI.toString()}, ${this.cellHandle}`;
143
+ }
144
+ confirm() {
145
+ this._state = common_1.NotebookCellExecutionState.Pending;
146
+ this.onDidUpdateEmitter.fire();
147
+ }
148
+ update(updates) {
149
+ if (updates.some(u => u.editType === common_1.CellExecutionUpdateType.ExecutionState)) {
150
+ this._state = common_1.NotebookCellExecutionState.Executing;
151
+ }
152
+ if (!this._didPause && updates.some(u => u.editType === common_1.CellExecutionUpdateType.ExecutionState && u.didPause)) {
153
+ this._didPause = true;
154
+ }
155
+ const lastIsPausedUpdate = [...updates].reverse().find(u => u.editType === common_1.CellExecutionUpdateType.ExecutionState && typeof u.isPaused === 'boolean');
156
+ if (lastIsPausedUpdate) {
157
+ this._isPaused = lastIsPausedUpdate.isPaused;
158
+ }
159
+ const cellModel = this.notebook.cells.find(c => c.handle === this.cellHandle);
160
+ if (!cellModel) {
161
+ console.debug(`CellExecution#update, updating cell not in notebook: ${this.notebook.uri.toString()}, ${this.cellHandle}`);
162
+ }
163
+ else {
164
+ const edits = updates.map(update => updateToEdit(update, this.cellHandle));
165
+ this.applyExecutionEdits(edits);
166
+ }
167
+ if (updates.some(u => u.editType === common_1.CellExecutionUpdateType.ExecutionState)) {
168
+ this.onDidUpdateEmitter.fire();
169
+ }
170
+ }
171
+ complete(completionData) {
172
+ const cellModel = this.notebook.cells.find(c => c.handle === this.cellHandle);
173
+ if (!cellModel) {
174
+ console.debug(`CellExecution#complete, completing cell not in notebook: ${this.notebook.uri.toString()}, ${this.cellHandle}`);
175
+ }
176
+ else {
177
+ const edit = {
178
+ editType: 9 /* PartialInternalMetadata */,
179
+ handle: this.cellHandle,
180
+ internalMetadata: {
181
+ lastRunSuccess: completionData.lastRunSuccess,
182
+ // eslint-disable-next-line no-null/no-null
183
+ runStartTime: this._didPause ? null : cellModel.internalMetadata.runStartTime,
184
+ // eslint-disable-next-line no-null/no-null
185
+ runEndTime: this._didPause ? null : completionData.runEndTime,
186
+ }
187
+ };
188
+ this.applyExecutionEdits([edit]);
189
+ }
190
+ this.onDidCompleteEmitter.fire(completionData.lastRunSuccess);
191
+ }
192
+ dispose() {
193
+ this.onDidUpdateEmitter.dispose();
194
+ this.onDidCompleteEmitter.dispose();
195
+ }
196
+ applyExecutionEdits(edits) {
197
+ this.notebook.applyEdits(edits, false);
198
+ }
199
+ }
200
+ exports.CellExecution = CellExecution;
201
+ class CellExecutionStateChangedEvent {
202
+ constructor(notebook, cellHandle, changed) {
203
+ this.notebook = notebook;
204
+ this.cellHandle = cellHandle;
205
+ this.changed = changed;
206
+ this.type = NotebookExecutionType.cell;
207
+ }
208
+ affectsCell(cell) {
209
+ const parsedUri = common_1.CellUri.parse(cell);
210
+ return !!parsedUri && this.notebook.isEqual(parsedUri.notebook) && this.cellHandle === parsedUri.handle;
211
+ }
212
+ affectsNotebook(notebook) {
213
+ return this.notebook.toString() === notebook.toString();
214
+ }
215
+ }
216
+ exports.CellExecutionStateChangedEvent = CellExecutionStateChangedEvent;
217
+ function updateToEdit(update, cellHandle) {
218
+ if (update.editType === common_1.CellExecutionUpdateType.Output) {
219
+ return {
220
+ editType: 2 /* Output */,
221
+ handle: update.cellHandle,
222
+ append: update.append,
223
+ outputs: update.outputs,
224
+ };
225
+ }
226
+ else if (update.editType === common_1.CellExecutionUpdateType.OutputItems) {
227
+ return {
228
+ editType: 7 /* OutputItems */,
229
+ items: update.items,
230
+ append: update.append,
231
+ };
232
+ }
233
+ else if (update.editType === common_1.CellExecutionUpdateType.ExecutionState) {
234
+ const newInternalMetadata = {};
235
+ if (typeof update.executionOrder !== 'undefined') {
236
+ newInternalMetadata.executionOrder = update.executionOrder;
237
+ }
238
+ if (typeof update.runStartTime !== 'undefined') {
239
+ newInternalMetadata.runStartTime = update.runStartTime;
240
+ }
241
+ return {
242
+ editType: 9 /* PartialInternalMetadata */,
243
+ handle: cellHandle,
244
+ internalMetadata: newInternalMetadata
245
+ };
246
+ }
247
+ throw new Error('Unknown cell update type');
248
+ }
249
+ exports.updateToEdit = updateToEdit;
250
+ //# sourceMappingURL=notebook-execution-state-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-execution-state-service.js","sourceRoot":"","sources":["../../../src/browser/service/notebook-execution-state-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { StorageService } from '@theia/core/lib/browser';
2
+ import { NotebookKernel, NotebookTextModelLike, NotebookKernelService } from './notebook-kernel-service';
3
+ import { Disposable } from '@theia/core';
4
+ interface MostRecentKernelsResult {
5
+ selected?: NotebookKernel;
6
+ all: NotebookKernel[];
7
+ }
8
+ export declare class NotebookKernelHistoryService implements Disposable {
9
+ protected storageService: StorageService;
10
+ protected notebookKernelService: NotebookKernelService;
11
+ serviceBrand: undefined;
12
+ private static STORAGE_KEY;
13
+ private mostRecentKernelsMap;
14
+ protected init(): void;
15
+ getKernels(notebook: NotebookTextModelLike): MostRecentKernelsResult;
16
+ addMostRecentKernel(kernel: NotebookKernel): void;
17
+ private saveState;
18
+ private loadState;
19
+ clear(): void;
20
+ dispose(): void;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=notebook-kernel-history-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-kernel-history-service.d.ts","sourceRoot":"","sources":["../../../src/browser/service/notebook-kernel-history-service.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,UAAU,uBAAuB;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,GAAG,EAAE,cAAc,EAAE,CAAA;CACxB;AAID,qBACa,4BAA6B,YAAW,UAAU;IAG3D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAGzC,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAE/C,YAAY,EAAE,SAAS,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAC,WAAW,CAA4B;IACtD,OAAO,CAAC,oBAAoB,CAAmB;IAG/C,SAAS,CAAC,IAAI,IAAI,IAAI;IAItB,UAAU,CAAC,QAAQ,EAAE,qBAAqB,GAAG,uBAAuB;IAepE,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAYjD,OAAO,CAAC,SAAS;YASH,SAAS;IASvB,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
22
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
23
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
24
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
25
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
26
+ };
27
+ var __metadata = (this && this.__metadata) || function (k, v) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
+ };
30
+ var NotebookKernelHistoryService_1;
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.NotebookKernelHistoryService = void 0;
33
+ const inversify_1 = require("@theia/core/shared/inversify");
34
+ const browser_1 = require("@theia/core/lib/browser");
35
+ const notebook_kernel_service_1 = require("./notebook-kernel-service");
36
+ const MAX_KERNELS_IN_HISTORY = 5;
37
+ let NotebookKernelHistoryService = NotebookKernelHistoryService_1 = class NotebookKernelHistoryService {
38
+ constructor() {
39
+ this.mostRecentKernelsMap = {};
40
+ }
41
+ init() {
42
+ this.loadState();
43
+ }
44
+ getKernels(notebook) {
45
+ const allAvailableKernels = this.notebookKernelService.getMatchingKernel(notebook);
46
+ const allKernels = allAvailableKernels.all;
47
+ const selectedKernel = allAvailableKernels.selected;
48
+ // We will suggest the only kernel
49
+ const suggested = allAvailableKernels.all.length === 1 ? allAvailableKernels.all[0] : undefined;
50
+ const mostRecentKernelIds = this.mostRecentKernelsMap[notebook.viewType] ? this.mostRecentKernelsMap[notebook.viewType].map(kernel => kernel[1]) : [];
51
+ const all = mostRecentKernelIds.map(kernelId => allKernels.find(kernel => kernel.id === kernelId)).filter(kernel => !!kernel);
52
+ return {
53
+ selected: selectedKernel !== null && selectedKernel !== void 0 ? selectedKernel : suggested,
54
+ all
55
+ };
56
+ }
57
+ addMostRecentKernel(kernel) {
58
+ var _a;
59
+ const viewType = kernel.viewType;
60
+ const recentKernels = (_a = this.mostRecentKernelsMap[viewType]) !== null && _a !== void 0 ? _a : [kernel.id];
61
+ if (recentKernels.length > MAX_KERNELS_IN_HISTORY) {
62
+ recentKernels.splice(MAX_KERNELS_IN_HISTORY);
63
+ }
64
+ this.mostRecentKernelsMap[viewType] = recentKernels;
65
+ this.saveState();
66
+ }
67
+ saveState() {
68
+ let notEmpty = false;
69
+ for (const [_, kernels] of Object.entries(this.mostRecentKernelsMap)) {
70
+ notEmpty = notEmpty || Object.entries(kernels).length > 0;
71
+ }
72
+ this.storageService.setData(NotebookKernelHistoryService_1.STORAGE_KEY, notEmpty ? this.mostRecentKernelsMap : undefined);
73
+ }
74
+ async loadState() {
75
+ const kernelMap = await this.storageService.getData(NotebookKernelHistoryService_1.STORAGE_KEY);
76
+ if (kernelMap) {
77
+ this.mostRecentKernelsMap = kernelMap;
78
+ }
79
+ else {
80
+ this.mostRecentKernelsMap = {};
81
+ }
82
+ }
83
+ clear() {
84
+ this.mostRecentKernelsMap = {};
85
+ this.saveState();
86
+ }
87
+ dispose() {
88
+ }
89
+ };
90
+ NotebookKernelHistoryService.STORAGE_KEY = 'notebook.kernelHistory';
91
+ __decorate([
92
+ (0, inversify_1.inject)(browser_1.StorageService),
93
+ __metadata("design:type", Object)
94
+ ], NotebookKernelHistoryService.prototype, "storageService", void 0);
95
+ __decorate([
96
+ (0, inversify_1.inject)(notebook_kernel_service_1.NotebookKernelService),
97
+ __metadata("design:type", notebook_kernel_service_1.NotebookKernelService)
98
+ ], NotebookKernelHistoryService.prototype, "notebookKernelService", void 0);
99
+ __decorate([
100
+ (0, inversify_1.postConstruct)(),
101
+ __metadata("design:type", Function),
102
+ __metadata("design:paramtypes", []),
103
+ __metadata("design:returntype", void 0)
104
+ ], NotebookKernelHistoryService.prototype, "init", null);
105
+ NotebookKernelHistoryService = NotebookKernelHistoryService_1 = __decorate([
106
+ (0, inversify_1.injectable)()
107
+ ], NotebookKernelHistoryService);
108
+ exports.NotebookKernelHistoryService = NotebookKernelHistoryService;
109
+ //# sourceMappingURL=notebook-kernel-history-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-kernel-history-service.js","sourceRoot":"","sources":["../../../src/browser/service/notebook-kernel-history-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { Command, CommandService, QuickInputService, QuickPickInput, QuickPickItem } from '@theia/core';
2
+ import { NotebookKernelService, NotebookKernel, NotebookKernelMatchResult, SourceCommand } from './notebook-kernel-service';
3
+ import { NotebookModel } from '../view-model/notebook-model';
4
+ import { NotebookEditorWidget } from '../notebook-editor-widget';
5
+ import { OpenerService } from '@theia/core/lib/browser';
6
+ import { NotebookKernelHistoryService } from './notebook-kernel-history-service';
7
+ export declare const JUPYTER_EXTENSION_ID = "ms-toolsai.jupyter";
8
+ export declare const NotebookKernelQuickPickService: unique symbol;
9
+ declare type KernelPick = QuickPickItem & {
10
+ kernel: NotebookKernel;
11
+ };
12
+ declare type GroupedKernelsPick = QuickPickItem & {
13
+ kernels: NotebookKernel[];
14
+ source: string;
15
+ };
16
+ declare type SourcePick = QuickPickItem & {
17
+ action: SourceCommand;
18
+ };
19
+ declare type InstallExtensionPick = QuickPickItem & {
20
+ extensionIds: string[];
21
+ };
22
+ declare type KernelSourceQuickPickItem = QuickPickItem & {
23
+ command: Command;
24
+ documentation?: string;
25
+ };
26
+ declare type KernelQuickPickItem = (QuickPickItem & {
27
+ autoRun?: boolean;
28
+ }) | InstallExtensionPick | KernelPick | GroupedKernelsPick | SourcePick | KernelSourceQuickPickItem;
29
+ export declare type KernelQuickPickContext = {
30
+ id: string;
31
+ extension: string;
32
+ } | {
33
+ notebookEditorId: string;
34
+ } | {
35
+ id: string;
36
+ extension: string;
37
+ notebookEditorId: string;
38
+ } | {
39
+ ui?: boolean;
40
+ notebookEditor?: NotebookEditorWidget;
41
+ };
42
+ export declare abstract class NotebookKernelQuickPickServiceImpl {
43
+ protected readonly notebookKernelService: NotebookKernelService;
44
+ protected readonly quickInputService: QuickInputService;
45
+ protected readonly commandService: CommandService;
46
+ showQuickPick(editor: NotebookModel, wantedId?: string, skipAutoRun?: boolean): Promise<boolean>;
47
+ protected getMatchingResult(notebook: NotebookModel): NotebookKernelMatchResult;
48
+ protected abstract getKernelPickerQuickPickItems(matchResult: NotebookKernelMatchResult): QuickPickInput<KernelQuickPickItem>[];
49
+ protected handleQuickPick(editor: NotebookModel, pick: KernelQuickPickItem, quickPickItems: KernelQuickPickItem[]): Promise<boolean>;
50
+ protected selectKernel(notebook: NotebookModel, kernel: NotebookKernel): void;
51
+ }
52
+ export declare class KernelPickerMRUStrategy extends NotebookKernelQuickPickServiceImpl {
53
+ protected openerService: OpenerService;
54
+ protected notebookKernelHistoryService: NotebookKernelHistoryService;
55
+ protected getKernelPickerQuickPickItems(matchResult: NotebookKernelMatchResult): QuickPickInput<KernelQuickPickItem>[];
56
+ protected selectKernel(notebook: NotebookModel, kernel: NotebookKernel): void;
57
+ protected getMatchingResult(notebook: NotebookModel): NotebookKernelMatchResult;
58
+ protected handleQuickPick(editor: NotebookModel, pick: KernelQuickPickItem, items: KernelQuickPickItem[]): Promise<boolean>;
59
+ private displaySelectAnotherQuickPick;
60
+ private calculateKernelSources;
61
+ private selectOneKernel;
62
+ private executeCommand;
63
+ }
64
+ export {};
65
+ //# sourceMappingURL=notebook-kernel-quick-pick-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook-kernel-quick-pick-service.d.ts","sourceRoot":"","sources":["../../../src/browser/service/notebook-kernel-quick-pick-service.ts"],"names":[],"mappings":"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"}