@difizen/libro-lab 0.1.17 → 0.1.19
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/es/command/lab-command.d.ts +1 -0
- package/es/command/lab-command.d.ts.map +1 -1
- package/es/command/lab-command.js +3 -2
- package/es/command/lab-menu-contribution.d.ts +4 -1
- package/es/command/lab-menu-contribution.d.ts.map +1 -1
- package/es/command/lab-menu-contribution.js +32 -3
- package/es/kernel-and-terminal-panel/kernel-and-terminal-panel-view.d.ts +3 -5
- package/es/kernel-and-terminal-panel/kernel-and-terminal-panel-view.d.ts.map +1 -1
- package/es/kernel-and-terminal-panel/kernel-and-terminal-panel-view.js +10 -17
- package/es/kernel-and-terminal-panel/panel-command.d.ts.map +1 -1
- package/es/kernel-and-terminal-panel/panel-command.js +2 -2
- package/es/layout/layout-service.d.ts +2 -1
- package/es/layout/layout-service.d.ts.map +1 -1
- package/package.json +10 -9
- package/src/command/lab-command.ts +2 -1
- package/src/command/lab-menu-contribution.ts +35 -4
- package/src/editor-viewer/code-editor-viewer.tsx +1 -1
- package/src/kernel-and-terminal-panel/kernel-and-terminal-panel-view.tsx +13 -20
- package/src/kernel-and-terminal-panel/panel-command.tsx +1 -2
- package/src/layout/layout-service.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab-command.d.ts","sourceRoot":"","sources":["../../src/command/lab-command.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"lab-command.d.ts","sourceRoot":"","sources":["../../src/command/lab-command.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8IvB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LibroService } from '@difizen/libro-jupyter';
|
|
2
2
|
import { TerminalManager } from '@difizen/libro-terminal';
|
|
3
3
|
import type { MenuRegistry } from '@difizen/mana-app';
|
|
4
|
+
import type { KeybindingRegistry } from '@difizen/mana-app';
|
|
5
|
+
import { KeybindingContribution } from '@difizen/mana-app';
|
|
4
6
|
import { CommandContribution, CommandRegistry, MenuContribution, ViewManager } from '@difizen/mana-app';
|
|
5
7
|
import { LayoutService } from '../layout/layout-service.js';
|
|
6
8
|
export declare namespace LabMenus {
|
|
@@ -11,12 +13,13 @@ export declare namespace LabMenus {
|
|
|
11
13
|
const TERMINAL: string[];
|
|
12
14
|
const HELP: string[];
|
|
13
15
|
}
|
|
14
|
-
export declare class LabMenu implements MenuContribution, CommandContribution {
|
|
16
|
+
export declare class LabMenu implements MenuContribution, CommandContribution, KeybindingContribution {
|
|
15
17
|
protected commandRegistry: CommandRegistry;
|
|
16
18
|
protected libroService: LibroService;
|
|
17
19
|
protected layoutService: LayoutService;
|
|
18
20
|
terminalManager: TerminalManager;
|
|
19
21
|
viewManager: ViewManager;
|
|
22
|
+
registerKeybindings(keybindings: KeybindingRegistry): void;
|
|
20
23
|
registerMenus(menu: MenuRegistry): void;
|
|
21
24
|
registerCommands(commands: CommandRegistry): void;
|
|
22
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab-menu-contribution.d.ts","sourceRoot":"","sources":["../../src/command/lab-menu-contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAoB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,eAAe,EAGf,gBAAgB,EAEhB,WAAW,EACZ,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lab-menu-contribution.d.ts","sourceRoot":"","sources":["../../src/command/lab-menu-contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAoB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,mBAAmB,EACnB,eAAe,EAGf,gBAAgB,EAEhB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,yBAAiB,QAAQ,CAAC;IACjB,MAAM,IAAI,UAA+B,CAAC;IAC1C,MAAM,IAAI,UAA+B,CAAC;IAC1C,MAAM,IAAI,UAA+B,CAAC;IAC1C,MAAM,GAAG,UAA8B,CAAC;IACxC,MAAM,QAAQ,UAAmC,CAAC;IAClD,MAAM,IAAI,UAA+B,CAAC;CAClD;AAED,qBACa,OACX,YAAW,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB;IAE/C,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC9C,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;IAE9C,mBAAmB,CAAC,WAAW,EAAE,kBAAkB;IAOnD,aAAa,CAAC,IAAI,EAAE,YAAY;IAkLhC,gBAAgB,CAAC,QAAQ,EAAE,eAAe;CAknB3C"}
|
|
@@ -19,7 +19,10 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con
|
|
|
19
19
|
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
|
|
20
20
|
import { LibroJupyterView, LibroService, NotebookCommands } from '@difizen/libro-jupyter';
|
|
21
21
|
import { TerminalCommands, TerminalManager } from '@difizen/libro-terminal';
|
|
22
|
+
import { KeybindingContribution } from '@difizen/mana-app';
|
|
23
|
+
import { Saveable } from '@difizen/mana-app';
|
|
22
24
|
import { CommandContribution, CommandRegistry, inject, MAIN_MENU_BAR, MenuContribution, singleton, ViewManager } from '@difizen/mana-app';
|
|
25
|
+
import { LibroLabLayoutSlots } from "../layout/index.js";
|
|
23
26
|
import { LayoutService } from "../layout/layout-service.js";
|
|
24
27
|
import { LabCommands } from "./lab-command.js";
|
|
25
28
|
export var LabMenus;
|
|
@@ -32,7 +35,7 @@ export var LabMenus;
|
|
|
32
35
|
var HELP = _LabMenus.HELP = [].concat(_toConsumableArray(MAIN_MENU_BAR), ['6_help']);
|
|
33
36
|
})(LabMenus || (LabMenus = {}));
|
|
34
37
|
export var LabMenu = (_dec = singleton({
|
|
35
|
-
contrib: [MenuContribution, CommandContribution]
|
|
38
|
+
contrib: [MenuContribution, CommandContribution, KeybindingContribution]
|
|
36
39
|
}), _dec2 = inject(CommandRegistry), _dec3 = inject(LibroService), _dec4 = inject(LayoutService), _dec5 = inject(TerminalManager), _dec6 = inject(ViewManager), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
37
40
|
function LabMenu() {
|
|
38
41
|
_classCallCheck(this, LabMenu);
|
|
@@ -43,6 +46,14 @@ export var LabMenu = (_dec = singleton({
|
|
|
43
46
|
_initializerDefineProperty(this, "viewManager", _descriptor5, this);
|
|
44
47
|
}
|
|
45
48
|
_createClass(LabMenu, [{
|
|
49
|
+
key: "registerKeybindings",
|
|
50
|
+
value: function registerKeybindings(keybindings) {
|
|
51
|
+
keybindings.registerKeybinding({
|
|
52
|
+
command: LabCommands.Save.id,
|
|
53
|
+
keybinding: LabCommands.Save.keybind
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
46
57
|
key: "registerMenus",
|
|
47
58
|
value: function registerMenus(menu) {
|
|
48
59
|
menu.registerSubmenu(LabMenus.FILE, {
|
|
@@ -274,12 +285,19 @@ export var LabMenu = (_dec = singleton({
|
|
|
274
285
|
return execute;
|
|
275
286
|
}()
|
|
276
287
|
});
|
|
277
|
-
commands.registerCommand(LabCommands.Save
|
|
288
|
+
commands.registerCommand(LabCommands.Save);
|
|
289
|
+
commands.registerHandler(LabCommands.Save.id, {
|
|
278
290
|
execute: function () {
|
|
279
291
|
var _execute2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
292
|
+
var contentActive;
|
|
280
293
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
281
294
|
while (1) switch (_context2.prev = _context2.next) {
|
|
282
295
|
case 0:
|
|
296
|
+
contentActive = _this.layoutService.getActiveView(LibroLabLayoutSlots.content);
|
|
297
|
+
if (contentActive && Saveable.is(contentActive)) {
|
|
298
|
+
contentActive.save();
|
|
299
|
+
}
|
|
300
|
+
case 2:
|
|
283
301
|
case "end":
|
|
284
302
|
return _context2.stop();
|
|
285
303
|
}
|
|
@@ -289,7 +307,18 @@ export var LabMenu = (_dec = singleton({
|
|
|
289
307
|
return _execute2.apply(this, arguments);
|
|
290
308
|
}
|
|
291
309
|
return execute;
|
|
292
|
-
}()
|
|
310
|
+
}(),
|
|
311
|
+
isEnabled: function isEnabled() {
|
|
312
|
+
var _contentActive$contai;
|
|
313
|
+
var contentActive = _this.layoutService.getActiveView(LibroLabLayoutSlots.content);
|
|
314
|
+
if (contentActive && (_contentActive$contai = contentActive.container) !== null && _contentActive$contai !== void 0 && _contentActive$contai.current) {
|
|
315
|
+
var contentHost = contentActive.container.current;
|
|
316
|
+
if (contentHost.contains(document.activeElement)) {
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
293
322
|
});
|
|
294
323
|
commands.registerCommandWithContext(LabCommands.UndoCellAction, this, {
|
|
295
324
|
execute: function () {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" resolution-mode="require"/>
|
|
2
2
|
import { LibroKernelManager, LibroSessionManager } from '@difizen/libro-kernel';
|
|
3
|
-
import
|
|
4
|
-
import { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
|
|
3
|
+
import { LibroLanguageClientManager } from '@difizen/libro-language-client';
|
|
5
4
|
import { TerminalManager } from '@difizen/libro-terminal';
|
|
6
5
|
import { BaseView, CommandRegistry, ViewManager } from '@difizen/mana-app';
|
|
7
6
|
import type { SaveableTabView } from '../index.js';
|
|
@@ -15,10 +14,9 @@ export declare class KernelAndTerminalPanelView extends BaseView {
|
|
|
15
14
|
libroKernelManager: LibroKernelManager;
|
|
16
15
|
libroSessionManager: LibroSessionManager;
|
|
17
16
|
terminalManager: TerminalManager;
|
|
18
|
-
|
|
19
|
-
lspManager: ILanguageServerManager;
|
|
17
|
+
libroLanguageClientManager: LibroLanguageClientManager;
|
|
20
18
|
commandRegistry: CommandRegistry;
|
|
21
|
-
constructor(libroKernelManager: LibroKernelManager, libroSessionManager: LibroSessionManager, terminalManager: TerminalManager,
|
|
19
|
+
constructor(libroKernelManager: LibroKernelManager, libroSessionManager: LibroSessionManager, terminalManager: TerminalManager, libroLanguageClientManager: LibroLanguageClientManager, commandRegistry: CommandRegistry);
|
|
22
20
|
getAllOpenedTabView(): SaveableTabView;
|
|
23
21
|
refresh(): void;
|
|
24
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-and-terminal-panel-view.d.ts","sourceRoot":"","sources":["../../src/kernel-and-terminal-panel/kernel-and-terminal-panel-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"kernel-and-terminal-panel-view.d.ts","sourceRoot":"","sources":["../../src/kernel-and-terminal-panel/kernel-and-terminal-panel-view.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAoB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EACL,QAAQ,EACR,eAAe,EAMf,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAQ5D,OAAO,cAAc,CAAC;AAsJtB,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E,qBAEa,0BAA2B,SAAQ,QAAQ;IAC7C,IAAI,yBAAe;IACP,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACjC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IAE9D,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,eAAe,EAAE,eAAe,CAAC;gBAGH,kBAAkB,EAAE,kBAAkB,EACrC,mBAAmB,EAAE,mBAAmB,EAC5C,eAAe,EAAE,eAAe,EAEzD,0BAA0B,EAAE,0BAA0B,EAC7B,eAAe,EAAE,eAAe;IAa3D,mBAAmB,IAAI,eAAe;IAMtC,OAAO;CAKR"}
|
|
@@ -30,7 +30,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
30
30
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
31
31
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
32
32
|
import { LibroKernelManager, LibroSessionManager } from '@difizen/libro-kernel';
|
|
33
|
-
import {
|
|
33
|
+
import { LibroLanguageClientManager } from '@difizen/libro-language-client';
|
|
34
34
|
import { TerminalCommands, TerminalManager } from '@difizen/libro-terminal';
|
|
35
35
|
import { BaseView, CommandRegistry, inject, singleton, useInject, view, ViewInstance, ViewManager } from '@difizen/mana-app';
|
|
36
36
|
import { useEffect, useState } from 'react';
|
|
@@ -47,8 +47,7 @@ var PanelRender = function PanelRender() {
|
|
|
47
47
|
var libroKernelManager = instance.libroKernelManager,
|
|
48
48
|
libroSessionManager = instance.libroSessionManager,
|
|
49
49
|
terminalManager = instance.terminalManager,
|
|
50
|
-
|
|
51
|
-
lspConnectionManager = instance.lspConnectionManager,
|
|
50
|
+
libroLanguageClientManager = instance.libroLanguageClientManager,
|
|
52
51
|
commandRegistry = instance.commandRegistry;
|
|
53
52
|
var _useState = useState(),
|
|
54
53
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -58,17 +57,12 @@ var PanelRender = function PanelRender() {
|
|
|
58
57
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
59
58
|
terminalItems = _useState4[0],
|
|
60
59
|
setTerminalItems = _useState4[1];
|
|
61
|
-
|
|
62
|
-
// const lspManager = useInject<ILSPDocumentConnectionManager>(
|
|
63
|
-
// DocumentConnectionManager,
|
|
64
|
-
// ).languageServerManager;
|
|
65
|
-
|
|
66
60
|
var _useState5 = useState(),
|
|
67
61
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
68
62
|
lspItems = _useState6[0],
|
|
69
63
|
setLSPItems = _useState6[1];
|
|
70
|
-
|
|
71
|
-
var sessions =
|
|
64
|
+
libroLanguageClientManager.sessionsChanged(function () {
|
|
65
|
+
var sessions = libroLanguageClientManager.sessions;
|
|
72
66
|
var items = [];
|
|
73
67
|
sessions.forEach(function (session, key) {
|
|
74
68
|
items.push({
|
|
@@ -80,7 +74,7 @@ var PanelRender = function PanelRender() {
|
|
|
80
74
|
while (1) switch (_context.prev = _context.next) {
|
|
81
75
|
case 0:
|
|
82
76
|
_context.next = 2;
|
|
83
|
-
return
|
|
77
|
+
return libroLanguageClientManager.closeLanguageClient(key);
|
|
84
78
|
case 2:
|
|
85
79
|
return _context.abrupt("return", _context.sent);
|
|
86
80
|
case 3:
|
|
@@ -282,7 +276,7 @@ var PanelRender = function PanelRender() {
|
|
|
282
276
|
while (1) switch (_context7.prev = _context7.next) {
|
|
283
277
|
case 0:
|
|
284
278
|
_context7.next = 2;
|
|
285
|
-
return
|
|
279
|
+
return libroLanguageClientManager.closeAllLanguageClient();
|
|
286
280
|
case 2:
|
|
287
281
|
return _context7.abrupt("return", _context7.sent);
|
|
288
282
|
case 3:
|
|
@@ -298,7 +292,7 @@ export var KernelAndTerminalPanelViewId = 'libro-kernel-and-terminal-view';
|
|
|
298
292
|
export var KernelAndTerminalPanelView = (_dec = singleton(), _dec2 = view(KernelAndTerminalPanelViewId), _dec3 = inject(ViewManager), _dec4 = inject(LayoutService), _dec(_class = _dec2(_class = (_class2 = /*#__PURE__*/function (_BaseView) {
|
|
299
293
|
_inherits(KernelAndTerminalPanelView, _BaseView);
|
|
300
294
|
var _super = _createSuper(KernelAndTerminalPanelView);
|
|
301
|
-
function KernelAndTerminalPanelView(libroKernelManager, libroSessionManager, terminalManager,
|
|
295
|
+
function KernelAndTerminalPanelView(libroKernelManager, libroSessionManager, terminalManager, libroLanguageClientManager, commandRegistry) {
|
|
302
296
|
var _this;
|
|
303
297
|
_classCallCheck(this, KernelAndTerminalPanelView);
|
|
304
298
|
_this = _super.call(this);
|
|
@@ -310,13 +304,12 @@ export var KernelAndTerminalPanelView = (_dec = singleton(), _dec2 = view(Kernel
|
|
|
310
304
|
_this.libroKernelManager = libroKernelManager;
|
|
311
305
|
_this.libroSessionManager = libroSessionManager;
|
|
312
306
|
_this.terminalManager = terminalManager;
|
|
313
|
-
_this.
|
|
314
|
-
_this.lspManager = lspDocumentConnectionManager.languageServerManager;
|
|
307
|
+
_this.libroLanguageClientManager = libroLanguageClientManager;
|
|
315
308
|
_this.commandRegistry = commandRegistry;
|
|
316
309
|
return _this;
|
|
317
310
|
}
|
|
318
311
|
KernelAndTerminalPanelView = inject(CommandRegistry)(KernelAndTerminalPanelView, undefined, 4) || KernelAndTerminalPanelView;
|
|
319
|
-
KernelAndTerminalPanelView = inject(
|
|
312
|
+
KernelAndTerminalPanelView = inject(LibroLanguageClientManager)(KernelAndTerminalPanelView, undefined, 3) || KernelAndTerminalPanelView;
|
|
320
313
|
KernelAndTerminalPanelView = inject(TerminalManager)(KernelAndTerminalPanelView, undefined, 2) || KernelAndTerminalPanelView;
|
|
321
314
|
KernelAndTerminalPanelView = inject(LibroSessionManager)(KernelAndTerminalPanelView, undefined, 1) || KernelAndTerminalPanelView;
|
|
322
315
|
KernelAndTerminalPanelView = inject(LibroKernelManager)(KernelAndTerminalPanelView, undefined, 0) || KernelAndTerminalPanelView;
|
|
@@ -330,7 +323,7 @@ export var KernelAndTerminalPanelView = (_dec = singleton(), _dec2 = view(Kernel
|
|
|
330
323
|
value: function refresh() {
|
|
331
324
|
this.libroSessionManager.refreshRunning();
|
|
332
325
|
this.terminalManager.refreshRunning();
|
|
333
|
-
this.
|
|
326
|
+
this.libroLanguageClientManager.refreshRunning();
|
|
334
327
|
}
|
|
335
328
|
}]);
|
|
336
329
|
return KernelAndTerminalPanelView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-command.d.ts","sourceRoot":"","sources":["../../src/kernel-and-terminal-panel/panel-command.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"panel-command.d.ts","sourceRoot":"","sources":["../../src/kernel-and-terminal-panel/panel-command.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,mBAAmB,EAGnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,eAAO,MAAM,YAAY;;;;;CAKxB,CAAC;AAEF,qBAGa,wBACX,YAAW,mBAAmB,EAAE,mBAAmB;IAEnD,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAGnC,0BAA0B,EAAE,0BAA0B,CAAC;gBAEtB,WAAW,EAAE,WAAW;IAIzD,gBAAgB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAahD,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAQ7D"}
|
|
@@ -13,7 +13,7 @@ function _applyDecoratedDescriptor(target, property, decorators, descriptor, con
|
|
|
13
13
|
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
|
|
14
14
|
import { ReloadOutlined } from '@ant-design/icons';
|
|
15
15
|
import { ViewManager } from '@difizen/mana-app';
|
|
16
|
-
import { CommandContribution, inject,
|
|
16
|
+
import { CommandContribution, inject, singleton, ToolbarContribution } from '@difizen/mana-app';
|
|
17
17
|
import { KernelAndTerminalPanelView } from "./kernel-and-terminal-panel-view.js";
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
19
|
export var PanelCommand = {
|
|
@@ -23,7 +23,7 @@ export var PanelCommand = {
|
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
export var PanelCommandContribution = (_dec = singleton({
|
|
26
|
-
contrib: [CommandContribution,
|
|
26
|
+
contrib: [CommandContribution, ToolbarContribution]
|
|
27
27
|
}), _dec2 = inject(KernelAndTerminalPanelView), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
28
28
|
function PanelCommandContribution(viewManager) {
|
|
29
29
|
_classCallCheck(this, PanelCommandContribution);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LibroService } from '@difizen/libro-jupyter';
|
|
2
2
|
import type { View, ViewOpenHandlerOptions, ViewOpenOption } from '@difizen/mana-app';
|
|
3
3
|
import { SlotViewManager } from '@difizen/mana-app';
|
|
4
|
+
import type { Disposable } from '@difizen/mana-common';
|
|
4
5
|
import type { LibroLabLayoutSlotsType, StatusType } from './protocol.js';
|
|
5
6
|
export type VisibilityMap = Record<LibroLabLayoutSlotsType, boolean>;
|
|
6
7
|
export declare class LayoutService {
|
|
@@ -15,7 +16,7 @@ export declare class LayoutService {
|
|
|
15
16
|
addView(view: View, option?: ViewOpenHandlerOptions): Promise<void>;
|
|
16
17
|
getAllSlotView(slot: LibroLabLayoutSlotsType): View | undefined;
|
|
17
18
|
getActiveView(slot: LibroLabLayoutSlotsType): View | undefined;
|
|
18
|
-
onSlotActiveChange(slot: LibroLabLayoutSlotsType, handler: () => void):
|
|
19
|
+
onSlotActiveChange(slot: LibroLabLayoutSlotsType, handler: () => void): Disposable | undefined;
|
|
19
20
|
shouldRenderNavigatorContent(): boolean;
|
|
20
21
|
onOpenSlotActiveChange(): Promise<void>;
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-service.d.ts","sourceRoot":"","sources":["../../src/layout/layout-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtF,OAAO,EAKL,eAAe,EAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"layout-service.d.ts","sourceRoot":"","sources":["../../src/layout/layout-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGtF,OAAO,EAKL,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGzE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;AACrE,qBACa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;gBAGnB,eAAe,EAAE,eAAe,EACnC,YAAY,EAAE,YAAY;IAWlD,WAAW,EAAE,UAAU,CAAa;IAGpC,aAAa,EAAE,aAAa,CAS1B;IAEF,aAAa,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO;IAIrD,cAAc,CAAC,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO;IAI9D,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,MAAM,EAAE,cAAc,GAAG,SAAS;IAa9B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE,cAAc,CAAC,IAAI,EAAE,uBAAuB;IAI5C,aAAa,CAAC,IAAI,EAAE,uBAAuB;IAU3C,kBAAkB,CAChB,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAE,MAAM,IAAI,GAClB,UAAU,GAAG,SAAS;IAUzB,4BAA4B,IAAI,OAAO;IAWjC,sBAAsB;CAoB7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@difizen/libro-lab",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"libro",
|
|
@@ -34,15 +34,16 @@
|
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@ant-design/icons": "^5.1.0",
|
|
37
|
-
"@difizen/libro-core": "^0.1.
|
|
38
|
-
"@difizen/libro-jupyter": "^0.1.
|
|
39
|
-
"@difizen/libro-kernel": "^0.1.
|
|
40
|
-
"@difizen/libro-prompt-cell": "^0.1.
|
|
41
|
-
"@difizen/libro-terminal": "^0.1.
|
|
42
|
-
"@difizen/libro-
|
|
43
|
-
"@difizen/libro-
|
|
44
|
-
"@difizen/libro-
|
|
37
|
+
"@difizen/libro-core": "^0.1.19",
|
|
38
|
+
"@difizen/libro-jupyter": "^0.1.19",
|
|
39
|
+
"@difizen/libro-kernel": "^0.1.19",
|
|
40
|
+
"@difizen/libro-prompt-cell": "^0.1.19",
|
|
41
|
+
"@difizen/libro-terminal": "^0.1.19",
|
|
42
|
+
"@difizen/libro-toc": "^0.1.19",
|
|
43
|
+
"@difizen/libro-cofine-editor-core": "^0.1.19",
|
|
44
|
+
"@difizen/libro-language-client": "^0.1.19",
|
|
45
45
|
"@difizen/mana-app": "latest",
|
|
46
|
+
"@difizen/mana-common": "latest",
|
|
46
47
|
"@difizen/mana-react": "latest",
|
|
47
48
|
"classnames": "^2.3.2",
|
|
48
49
|
"uuid": "^9.0.0",
|
|
@@ -6,6 +6,9 @@ import {
|
|
|
6
6
|
} from '@difizen/libro-jupyter';
|
|
7
7
|
import { TerminalCommands, TerminalManager } from '@difizen/libro-terminal';
|
|
8
8
|
import type { MenuRegistry } from '@difizen/mana-app';
|
|
9
|
+
import type { KeybindingRegistry } from '@difizen/mana-app';
|
|
10
|
+
import { KeybindingContribution } from '@difizen/mana-app';
|
|
11
|
+
import { Saveable } from '@difizen/mana-app';
|
|
9
12
|
import {
|
|
10
13
|
CommandContribution,
|
|
11
14
|
CommandRegistry,
|
|
@@ -16,6 +19,7 @@ import {
|
|
|
16
19
|
ViewManager,
|
|
17
20
|
} from '@difizen/mana-app';
|
|
18
21
|
|
|
22
|
+
import { LibroLabLayoutSlots } from '../layout/index.js';
|
|
19
23
|
import { LayoutService } from '../layout/layout-service.js';
|
|
20
24
|
|
|
21
25
|
import { LabCommands } from './lab-command.js';
|
|
@@ -29,14 +33,23 @@ export namespace LabMenus {
|
|
|
29
33
|
export const HELP = [...MAIN_MENU_BAR, '6_help'];
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
@singleton({ contrib: [MenuContribution, CommandContribution] })
|
|
33
|
-
export class LabMenu
|
|
36
|
+
@singleton({ contrib: [MenuContribution, CommandContribution, KeybindingContribution] })
|
|
37
|
+
export class LabMenu
|
|
38
|
+
implements MenuContribution, CommandContribution, KeybindingContribution
|
|
39
|
+
{
|
|
34
40
|
@inject(CommandRegistry) protected commandRegistry: CommandRegistry;
|
|
35
41
|
@inject(LibroService) protected libroService: LibroService;
|
|
36
42
|
@inject(LayoutService) protected layoutService: LayoutService;
|
|
37
43
|
@inject(TerminalManager) terminalManager: TerminalManager;
|
|
38
44
|
@inject(ViewManager) viewManager: ViewManager;
|
|
39
45
|
|
|
46
|
+
registerKeybindings(keybindings: KeybindingRegistry) {
|
|
47
|
+
keybindings.registerKeybinding({
|
|
48
|
+
command: LabCommands.Save.id,
|
|
49
|
+
keybinding: LabCommands.Save.keybind,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
40
53
|
registerMenus(menu: MenuRegistry) {
|
|
41
54
|
menu.registerSubmenu(LabMenus.FILE, { label: '文件' });
|
|
42
55
|
menu.registerSubmenu(LabMenus.EDIT, { label: '编辑' });
|
|
@@ -240,9 +253,27 @@ export class LabMenu implements MenuContribution, CommandContribution {
|
|
|
240
253
|
//TODO: 关于
|
|
241
254
|
},
|
|
242
255
|
});
|
|
243
|
-
commands.registerCommand(LabCommands.Save
|
|
256
|
+
commands.registerCommand(LabCommands.Save);
|
|
257
|
+
commands.registerHandler(LabCommands.Save.id, {
|
|
244
258
|
execute: async () => {
|
|
245
|
-
|
|
259
|
+
const contentActive = this.layoutService.getActiveView(
|
|
260
|
+
LibroLabLayoutSlots.content,
|
|
261
|
+
);
|
|
262
|
+
if (contentActive && Saveable.is(contentActive)) {
|
|
263
|
+
contentActive.save();
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
isEnabled: () => {
|
|
267
|
+
const contentActive = this.layoutService.getActiveView(
|
|
268
|
+
LibroLabLayoutSlots.content,
|
|
269
|
+
);
|
|
270
|
+
if (contentActive && contentActive.container?.current) {
|
|
271
|
+
const contentHost = contentActive.container.current;
|
|
272
|
+
if (contentHost.contains(document.activeElement)) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return false;
|
|
246
277
|
},
|
|
247
278
|
});
|
|
248
279
|
commands.registerCommandWithContext(LabCommands.UndoCellAction, this, {
|
|
@@ -137,8 +137,8 @@ export class CodeEditorViewer extends BaseView implements NavigatableView, Savea
|
|
|
137
137
|
uri,
|
|
138
138
|
value: content,
|
|
139
139
|
};
|
|
140
|
-
|
|
141
140
|
this.e2Editor = editorPorvider.create(this.codeRef.current, options);
|
|
141
|
+
|
|
142
142
|
this.toDispose.push(
|
|
143
143
|
getOrigin(this.e2Editor.codeEditor).onDidChangeModelContent(() => {
|
|
144
144
|
this.dirty = true;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LibroKernelManager, LibroSessionManager } from '@difizen/libro-kernel';
|
|
2
|
-
import
|
|
3
|
-
import { ILSPDocumentConnectionManager } from '@difizen/libro-lsp';
|
|
2
|
+
import { LibroLanguageClientManager } from '@difizen/libro-language-client';
|
|
4
3
|
import { TerminalCommands, TerminalManager } from '@difizen/libro-terminal';
|
|
5
4
|
import {
|
|
6
5
|
BaseView,
|
|
@@ -35,8 +34,7 @@ const PanelRender: React.FC = () => {
|
|
|
35
34
|
libroKernelManager,
|
|
36
35
|
libroSessionManager,
|
|
37
36
|
terminalManager,
|
|
38
|
-
|
|
39
|
-
lspConnectionManager,
|
|
37
|
+
libroLanguageClientManager,
|
|
40
38
|
commandRegistry,
|
|
41
39
|
} = instance;
|
|
42
40
|
|
|
@@ -48,14 +46,10 @@ const PanelRender: React.FC = () => {
|
|
|
48
46
|
LibroPanelCollapseItem[] | undefined
|
|
49
47
|
>();
|
|
50
48
|
|
|
51
|
-
// const lspManager = useInject<ILSPDocumentConnectionManager>(
|
|
52
|
-
// DocumentConnectionManager,
|
|
53
|
-
// ).languageServerManager;
|
|
54
|
-
|
|
55
49
|
const [lspItems, setLSPItems] = useState<LibroPanelCollapseItem[] | undefined>();
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
const sessions =
|
|
51
|
+
libroLanguageClientManager.sessionsChanged(() => {
|
|
52
|
+
const sessions = libroLanguageClientManager.sessions;
|
|
59
53
|
|
|
60
54
|
const items = [] as LibroPanelCollapseItem[];
|
|
61
55
|
|
|
@@ -63,8 +57,7 @@ const PanelRender: React.FC = () => {
|
|
|
63
57
|
items.push({
|
|
64
58
|
id: key,
|
|
65
59
|
name: `${key} (${session.spec.languages.join('/')})`,
|
|
66
|
-
shutdown: async () =>
|
|
67
|
-
await lspConnectionManager.disconnectServer(key as TLanguageServerId),
|
|
60
|
+
shutdown: async () => await libroLanguageClientManager.closeLanguageClient(key),
|
|
68
61
|
});
|
|
69
62
|
});
|
|
70
63
|
|
|
@@ -173,7 +166,9 @@ const PanelRender: React.FC = () => {
|
|
|
173
166
|
<LibroCollapse
|
|
174
167
|
type={LibroPanelCollapseItemType.LSP}
|
|
175
168
|
items={lspItems}
|
|
176
|
-
shutdownAll={async () =>
|
|
169
|
+
shutdownAll={async () =>
|
|
170
|
+
await libroLanguageClientManager.closeAllLanguageClient()
|
|
171
|
+
}
|
|
177
172
|
/>
|
|
178
173
|
</div>
|
|
179
174
|
);
|
|
@@ -191,16 +186,15 @@ export class KernelAndTerminalPanelView extends BaseView {
|
|
|
191
186
|
libroKernelManager: LibroKernelManager;
|
|
192
187
|
libroSessionManager: LibroSessionManager;
|
|
193
188
|
terminalManager: TerminalManager;
|
|
194
|
-
|
|
195
|
-
lspManager: ILanguageServerManager;
|
|
189
|
+
libroLanguageClientManager: LibroLanguageClientManager;
|
|
196
190
|
commandRegistry: CommandRegistry;
|
|
197
191
|
|
|
198
192
|
constructor(
|
|
199
193
|
@inject(LibroKernelManager) libroKernelManager: LibroKernelManager,
|
|
200
194
|
@inject(LibroSessionManager) libroSessionManager: LibroSessionManager,
|
|
201
195
|
@inject(TerminalManager) terminalManager: TerminalManager,
|
|
202
|
-
@inject(
|
|
203
|
-
|
|
196
|
+
@inject(LibroLanguageClientManager)
|
|
197
|
+
libroLanguageClientManager: LibroLanguageClientManager,
|
|
204
198
|
@inject(CommandRegistry) commandRegistry: CommandRegistry,
|
|
205
199
|
) {
|
|
206
200
|
super();
|
|
@@ -210,8 +204,7 @@ export class KernelAndTerminalPanelView extends BaseView {
|
|
|
210
204
|
this.libroKernelManager = libroKernelManager;
|
|
211
205
|
this.libroSessionManager = libroSessionManager;
|
|
212
206
|
this.terminalManager = terminalManager;
|
|
213
|
-
this.
|
|
214
|
-
this.lspManager = lspDocumentConnectionManager.languageServerManager;
|
|
207
|
+
this.libroLanguageClientManager = libroLanguageClientManager;
|
|
215
208
|
this.commandRegistry = commandRegistry;
|
|
216
209
|
}
|
|
217
210
|
|
|
@@ -224,6 +217,6 @@ export class KernelAndTerminalPanelView extends BaseView {
|
|
|
224
217
|
refresh() {
|
|
225
218
|
this.libroSessionManager.refreshRunning();
|
|
226
219
|
this.terminalManager.refreshRunning();
|
|
227
|
-
this.
|
|
220
|
+
this.libroLanguageClientManager.refreshRunning();
|
|
228
221
|
}
|
|
229
222
|
}
|
|
@@ -4,7 +4,6 @@ import { ViewManager } from '@difizen/mana-app';
|
|
|
4
4
|
import {
|
|
5
5
|
CommandContribution,
|
|
6
6
|
inject,
|
|
7
|
-
MenuContribution,
|
|
8
7
|
singleton,
|
|
9
8
|
ToolbarContribution,
|
|
10
9
|
} from '@difizen/mana-app';
|
|
@@ -19,7 +18,7 @@ export const PanelCommand = {
|
|
|
19
18
|
};
|
|
20
19
|
|
|
21
20
|
@singleton({
|
|
22
|
-
contrib: [CommandContribution,
|
|
21
|
+
contrib: [CommandContribution, ToolbarContribution],
|
|
23
22
|
})
|
|
24
23
|
export class PanelCommandContribution
|
|
25
24
|
implements CommandContribution, ToolbarContribution
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
singleton,
|
|
10
10
|
SlotViewManager,
|
|
11
11
|
} from '@difizen/mana-app';
|
|
12
|
+
import type { Disposable } from '@difizen/mana-common';
|
|
12
13
|
|
|
13
14
|
import type { LibroLabLayoutSlotsType, StatusType } from './protocol.js';
|
|
14
15
|
import { LibroLabLayoutSlots } from './protocol.js';
|
|
@@ -92,7 +93,10 @@ export class LayoutService {
|
|
|
92
93
|
return undefined;
|
|
93
94
|
}
|
|
94
95
|
|
|
95
|
-
onSlotActiveChange(
|
|
96
|
+
onSlotActiveChange(
|
|
97
|
+
slot: LibroLabLayoutSlotsType,
|
|
98
|
+
handler: () => void,
|
|
99
|
+
): Disposable | undefined {
|
|
96
100
|
if (this.isAreaVisible(slot)) {
|
|
97
101
|
const slotView = this.slotViewManager.getSlotView(slot);
|
|
98
102
|
if (slotView instanceof DefaultSlotView) {
|