@opensumi/ide-editor 3.3.1-next-1725432779.0 → 3.3.1-next-1725433243.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.
- package/lib/browser/editor-collection.service.d.ts +1 -1
- package/lib/browser/editor-collection.service.d.ts.map +1 -1
- package/lib/browser/editor-collection.service.js +2 -2
- package/lib/browser/editor-collection.service.js.map +1 -1
- package/lib/browser/editor.module.less +1 -0
- package/lib/browser/editor.view.d.ts +4 -2
- package/lib/browser/editor.view.d.ts.map +1 -1
- package/lib/browser/editor.view.js +6 -16
- package/lib/browser/editor.view.js.map +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +5 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/notebook.service.d.ts +20 -0
- package/lib/browser/notebook.service.d.ts.map +1 -0
- package/lib/browser/notebook.service.js +24 -0
- package/lib/browser/notebook.service.js.map +1 -0
- package/lib/browser/workbench-editor.service.d.ts +6 -1
- package/lib/browser/workbench-editor.service.d.ts.map +1 -1
- package/lib/browser/workbench-editor.service.js +118 -71
- package/lib/browser/workbench-editor.service.js.map +1 -1
- package/lib/common/editor.d.ts +1 -1
- package/lib/common/editor.d.ts.map +1 -1
- package/lib/common/index.d.ts +4 -3
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +4 -3
- package/lib/common/index.js.map +1 -1
- package/lib/common/language.d.ts +1 -0
- package/lib/common/language.d.ts.map +1 -1
- package/lib/common/notebook.d.ts +169 -0
- package/lib/common/notebook.d.ts.map +1 -0
- package/lib/common/notebook.js +26 -0
- package/lib/common/notebook.js.map +1 -0
- package/package.json +14 -14
- package/src/browser/editor-collection.service.ts +2 -2
- package/src/browser/editor.module.less +1 -0
- package/src/browser/editor.view.tsx +174 -183
- package/src/browser/index.ts +6 -0
- package/src/browser/notebook.service.ts +19 -0
- package/src/browser/workbench-editor.service.ts +105 -70
- package/src/common/editor.ts +1 -1
- package/src/common/index.ts +4 -3
- package/src/common/language.ts +1 -0
- package/src/common/notebook.ts +196 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/common/notebook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notebookCellScheme = exports.INotebookService = exports.CellKind = exports.NotebookCellsChangeType = void 0;
|
|
4
|
+
var NotebookCellsChangeType;
|
|
5
|
+
(function (NotebookCellsChangeType) {
|
|
6
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ModelChange"] = 1] = "ModelChange";
|
|
7
|
+
NotebookCellsChangeType[NotebookCellsChangeType["Move"] = 2] = "Move";
|
|
8
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeCellLanguage"] = 5] = "ChangeCellLanguage";
|
|
9
|
+
NotebookCellsChangeType[NotebookCellsChangeType["Initialize"] = 6] = "Initialize";
|
|
10
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeCellMetadata"] = 7] = "ChangeCellMetadata";
|
|
11
|
+
NotebookCellsChangeType[NotebookCellsChangeType["Output"] = 8] = "Output";
|
|
12
|
+
NotebookCellsChangeType[NotebookCellsChangeType["OutputItem"] = 9] = "OutputItem";
|
|
13
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeCellContent"] = 10] = "ChangeCellContent";
|
|
14
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeDocumentMetadata"] = 11] = "ChangeDocumentMetadata";
|
|
15
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeCellInternalMetadata"] = 12] = "ChangeCellInternalMetadata";
|
|
16
|
+
NotebookCellsChangeType[NotebookCellsChangeType["ChangeCellMime"] = 13] = "ChangeCellMime";
|
|
17
|
+
NotebookCellsChangeType[NotebookCellsChangeType["Unknown"] = 100] = "Unknown";
|
|
18
|
+
})(NotebookCellsChangeType = exports.NotebookCellsChangeType || (exports.NotebookCellsChangeType = {}));
|
|
19
|
+
var CellKind;
|
|
20
|
+
(function (CellKind) {
|
|
21
|
+
CellKind[CellKind["Markup"] = 1] = "Markup";
|
|
22
|
+
CellKind[CellKind["Code"] = 2] = "Code";
|
|
23
|
+
})(CellKind = exports.CellKind || (exports.CellKind = {}));
|
|
24
|
+
exports.INotebookService = Symbol('INotebookService');
|
|
25
|
+
exports.notebookCellScheme = 'vscode-notebook-cell';
|
|
26
|
+
//# sourceMappingURL=notebook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook.js","sourceRoot":"","sources":["../../src/common/notebook.ts"],"names":[],"mappings":";;;AAEA,IAAY,uBAaX;AAbD,WAAY,uBAAuB;IACjC,mFAAe,CAAA;IACf,qEAAQ,CAAA;IACR,iGAAsB,CAAA;IACtB,iFAAc,CAAA;IACd,iGAAsB,CAAA;IACtB,yEAAU,CAAA;IACV,iFAAc,CAAA;IACd,gGAAsB,CAAA;IACtB,0GAA2B,CAAA;IAC3B,kHAA+B,CAAA;IAC/B,0FAAmB,CAAA;IACnB,6EAAa,CAAA;AACf,CAAC,EAbW,uBAAuB,GAAvB,+BAAuB,KAAvB,+BAAuB,QAalC;AAmBD,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2CAAU,CAAA;IACV,uCAAQ,CAAA;AACV,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAiJY,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAa9C,QAAA,kBAAkB,GAAG,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-editor",
|
|
3
|
-
"version": "3.3.1-next-
|
|
3
|
+
"version": "3.3.1-next-1725433243.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src"
|
|
@@ -17,21 +17,21 @@
|
|
|
17
17
|
"url": "git@github.com:opensumi/core.git"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@opensumi/ide-core-common": "3.3.1-next-
|
|
21
|
-
"@opensumi/ide-core-node": "3.3.1-next-
|
|
22
|
-
"@opensumi/ide-file-service": "3.3.1-next-
|
|
23
|
-
"@opensumi/ide-monaco": "3.3.1-next-
|
|
24
|
-
"@opensumi/ide-utils": "3.3.1-next-
|
|
20
|
+
"@opensumi/ide-core-common": "3.3.1-next-1725433243.0",
|
|
21
|
+
"@opensumi/ide-core-node": "3.3.1-next-1725433243.0",
|
|
22
|
+
"@opensumi/ide-file-service": "3.3.1-next-1725433243.0",
|
|
23
|
+
"@opensumi/ide-monaco": "3.3.1-next-1725433243.0",
|
|
24
|
+
"@opensumi/ide-utils": "3.3.1-next-1725433243.0",
|
|
25
25
|
"vscode-oniguruma": "1.5.1"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@opensumi/ide-components": "3.3.1-next-
|
|
29
|
-
"@opensumi/ide-core-browser": "3.3.1-next-
|
|
30
|
-
"@opensumi/ide-dev-tool": "3.3.1-next-
|
|
31
|
-
"@opensumi/ide-overlay": "3.3.1-next-
|
|
32
|
-
"@opensumi/ide-quick-open": "3.3.1-next-
|
|
33
|
-
"@opensumi/ide-theme": "3.3.1-next-
|
|
34
|
-
"@opensumi/ide-workspace": "3.3.1-next-
|
|
28
|
+
"@opensumi/ide-components": "3.3.1-next-1725433243.0",
|
|
29
|
+
"@opensumi/ide-core-browser": "3.3.1-next-1725433243.0",
|
|
30
|
+
"@opensumi/ide-dev-tool": "3.3.1-next-1725433243.0",
|
|
31
|
+
"@opensumi/ide-overlay": "3.3.1-next-1725433243.0",
|
|
32
|
+
"@opensumi/ide-quick-open": "3.3.1-next-1725433243.0",
|
|
33
|
+
"@opensumi/ide-theme": "3.3.1-next-1725433243.0",
|
|
34
|
+
"@opensumi/ide-workspace": "3.3.1-next-1725433243.0"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "76cbd0614c78862e45f0a908727ca9f9561a6482"
|
|
37
37
|
}
|
|
@@ -799,8 +799,8 @@ export class BrowserDiffEditor extends WithEventBus implements IDiffEditor {
|
|
|
799
799
|
];
|
|
800
800
|
}
|
|
801
801
|
|
|
802
|
-
layout(
|
|
803
|
-
return this.monacoDiffEditor.layout(
|
|
802
|
+
layout(): void {
|
|
803
|
+
return this.monacoDiffEditor.layout();
|
|
804
804
|
}
|
|
805
805
|
|
|
806
806
|
focus(): void {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import cls from 'classnames';
|
|
2
2
|
import { observer } from 'mobx-react-lite';
|
|
3
|
-
import React
|
|
3
|
+
import React from 'react';
|
|
4
4
|
import ReactDOM from 'react-dom/client';
|
|
5
|
+
import ReactIs from 'react-is';
|
|
5
6
|
|
|
6
7
|
import { Scrollbars } from '@opensumi/ide-components';
|
|
7
8
|
import {
|
|
@@ -281,6 +282,7 @@ export const EditorGroupView = observer(({ group }: { group: EditorGroup }) => {
|
|
|
281
282
|
|
|
282
283
|
return (
|
|
283
284
|
<div
|
|
285
|
+
ref={groupWrapperRef as any}
|
|
284
286
|
className={styles_kt_editor_group}
|
|
285
287
|
tabIndex={1}
|
|
286
288
|
onFocus={(e) => {
|
|
@@ -292,7 +294,7 @@ export const EditorGroupView = observer(({ group }: { group: EditorGroup }) => {
|
|
|
292
294
|
<Tabs group={group} />
|
|
293
295
|
</div>
|
|
294
296
|
)}
|
|
295
|
-
<EditorGroupBody
|
|
297
|
+
<EditorGroupBody group={group} />
|
|
296
298
|
{isEmpty && (
|
|
297
299
|
<div
|
|
298
300
|
className={styles.kt_editor_background}
|
|
@@ -307,201 +309,190 @@ export const EditorGroupView = observer(({ group }: { group: EditorGroup }) => {
|
|
|
307
309
|
);
|
|
308
310
|
});
|
|
309
311
|
|
|
310
|
-
export const EditorGroupBody = observer(
|
|
311
|
-
|
|
312
|
-
const [context, setContext] = React.useState<IEditorContext>(defaultEditorContext);
|
|
313
|
-
|
|
314
|
-
const editorBodyRef = React.useRef<HTMLDivElement | null>(null);
|
|
315
|
-
const editorService = useInjectable(WorkbenchEditorService) as WorkbenchEditorServiceImpl;
|
|
316
|
-
const eventBus = useInjectable(IEventBus) as IEventBus;
|
|
317
|
-
const styles_kt_editor_component = useDesignStyles(styles.kt_editor_component, 'kt_editor_component');
|
|
318
|
-
const components: React.ReactNode[] = [];
|
|
319
|
-
const codeEditorRef = React.useRef<HTMLDivElement>(null);
|
|
320
|
-
const diffEditorRef = React.useRef<HTMLDivElement>(null);
|
|
321
|
-
const mergeEditorRef = React.useRef<HTMLDivElement>(null);
|
|
322
|
-
const [, updateState] = React.useState<any>();
|
|
323
|
-
const forceUpdate = React.useCallback(() => updateState({}), []);
|
|
324
|
-
|
|
325
|
-
React.useEffect(() => {
|
|
326
|
-
const disposables = new DisposableStore();
|
|
327
|
-
|
|
328
|
-
disposables.add(
|
|
329
|
-
group.onDidEditorGroupBodyChanged(() => {
|
|
330
|
-
forceUpdate();
|
|
331
|
-
}),
|
|
332
|
-
);
|
|
333
|
-
|
|
334
|
-
if (codeEditorRef.current) {
|
|
335
|
-
if (cachedEditor[group.name]) {
|
|
336
|
-
cachedEditor[group.name].remove();
|
|
337
|
-
codeEditorRef.current.appendChild(cachedEditor[group.name]);
|
|
338
|
-
} else {
|
|
339
|
-
const container = document.createElement('div');
|
|
340
|
-
codeEditorRef.current.appendChild(container);
|
|
341
|
-
cachedEditor[group.name] = container;
|
|
342
|
-
group.createEditor(container);
|
|
343
|
-
const minimapWith = group.codeEditor.monacoEditor.getOption(monaco.editor.EditorOption.layoutInfo).minimap
|
|
344
|
-
.minimapWidth;
|
|
345
|
-
setContext({ minimapWidth: minimapWith });
|
|
346
|
-
|
|
347
|
-
disposables.add(
|
|
348
|
-
group.codeEditor.monacoEditor.onDidChangeConfiguration((e) => {
|
|
349
|
-
if (e.hasChanged(monaco.editor.EditorOption.layoutInfo)) {
|
|
350
|
-
setContext({
|
|
351
|
-
minimapWidth: group.codeEditor.monacoEditor.getOption(monaco.editor.EditorOption.layoutInfo).minimap
|
|
352
|
-
.minimapWidth,
|
|
353
|
-
});
|
|
354
|
-
}
|
|
355
|
-
}),
|
|
356
|
-
);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
312
|
+
export const EditorGroupBody = observer(({ group }: { group: EditorGroup }) => {
|
|
313
|
+
const [context, setContext] = React.useState<IEditorContext>(defaultEditorContext);
|
|
359
314
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}, []);
|
|
315
|
+
const editorBodyRef = React.useRef<HTMLDivElement>(null);
|
|
316
|
+
const editorService = useInjectable(WorkbenchEditorService) as WorkbenchEditorServiceImpl;
|
|
317
|
+
const eventBus = useInjectable(IEventBus) as IEventBus;
|
|
318
|
+
const styles_kt_editor_component = useDesignStyles(styles.kt_editor_component, 'kt_editor_component');
|
|
319
|
+
const components: React.ReactNode[] = [];
|
|
320
|
+
const codeEditorRef = React.useRef<HTMLDivElement>(null);
|
|
321
|
+
const diffEditorRef = React.useRef<HTMLDivElement>(null);
|
|
322
|
+
const mergeEditorRef = React.useRef<HTMLDivElement>(null);
|
|
323
|
+
const [, updateState] = React.useState<any>();
|
|
324
|
+
const forceUpdate = React.useCallback(() => updateState({}), []);
|
|
371
325
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
components.push(
|
|
375
|
-
<div
|
|
376
|
-
key={component.uid}
|
|
377
|
-
className={cls({
|
|
378
|
-
[styles.kt_hidden]: !(group.currentOpenType && group.currentOpenType.componentId === component.uid),
|
|
379
|
-
})}
|
|
380
|
-
>
|
|
381
|
-
<ComponentsWrapper
|
|
382
|
-
key={component.uid}
|
|
383
|
-
component={component}
|
|
384
|
-
{...initialProps}
|
|
385
|
-
resources={resources}
|
|
386
|
-
current={group.currentResource}
|
|
387
|
-
></ComponentsWrapper>
|
|
388
|
-
</div>,
|
|
389
|
-
);
|
|
390
|
-
});
|
|
326
|
+
React.useEffect(() => {
|
|
327
|
+
const disposables = new DisposableStore();
|
|
391
328
|
|
|
392
|
-
|
|
393
|
-
() =>
|
|
394
|
-
|
|
329
|
+
disposables.add(
|
|
330
|
+
group.onDidEditorGroupBodyChanged(() => {
|
|
331
|
+
forceUpdate();
|
|
332
|
+
}),
|
|
395
333
|
);
|
|
396
334
|
|
|
397
|
-
|
|
398
|
-
if (group.
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
);
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
335
|
+
if (codeEditorRef.current) {
|
|
336
|
+
if (cachedEditor[group.name]) {
|
|
337
|
+
cachedEditor[group.name].remove();
|
|
338
|
+
codeEditorRef.current.appendChild(cachedEditor[group.name]);
|
|
339
|
+
} else {
|
|
340
|
+
const container = document.createElement('div');
|
|
341
|
+
codeEditorRef.current.appendChild(container);
|
|
342
|
+
cachedEditor[group.name] = container;
|
|
343
|
+
group.createEditor(container);
|
|
344
|
+
const minimapWith = group.codeEditor.monacoEditor.getOption(monaco.editor.EditorOption.layoutInfo).minimap
|
|
345
|
+
.minimapWidth;
|
|
346
|
+
setContext({ minimapWidth: minimapWith });
|
|
347
|
+
|
|
348
|
+
disposables.add(
|
|
349
|
+
group.codeEditor.monacoEditor.onDidChangeConfiguration((e) => {
|
|
350
|
+
if (e.hasChanged(monaco.editor.EditorOption.layoutInfo)) {
|
|
351
|
+
setContext({
|
|
352
|
+
minimapWidth: group.codeEditor.monacoEditor.getOption(monaco.editor.EditorOption.layoutInfo).minimap
|
|
353
|
+
.minimapWidth,
|
|
354
|
+
});
|
|
355
|
+
}
|
|
412
356
|
}),
|
|
413
357
|
);
|
|
414
358
|
}
|
|
415
|
-
}
|
|
359
|
+
}
|
|
416
360
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
361
|
+
if (diffEditorRef.current) {
|
|
362
|
+
group.attachDiffEditorDom(diffEditorRef.current);
|
|
363
|
+
}
|
|
364
|
+
if (mergeEditorRef.current) {
|
|
365
|
+
group.attachMergeEditorDom(mergeEditorRef.current);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
return () => {
|
|
369
|
+
disposables.dispose();
|
|
370
|
+
};
|
|
371
|
+
}, []);
|
|
372
|
+
|
|
373
|
+
group.activeComponents.forEach((resources, component) => {
|
|
374
|
+
const initialProps = group.activateComponentsProps.get(component);
|
|
375
|
+
components.push(
|
|
376
|
+
<div
|
|
377
|
+
key={component.uid}
|
|
378
|
+
className={cls({
|
|
379
|
+
[styles.kt_hidden]: !(group.currentOpenType && group.currentOpenType.componentId === component.uid),
|
|
380
|
+
})}
|
|
381
|
+
>
|
|
382
|
+
<ComponentsWrapper
|
|
383
|
+
key={component.uid}
|
|
384
|
+
component={component}
|
|
385
|
+
{...initialProps}
|
|
386
|
+
resources={resources}
|
|
387
|
+
current={group.currentResource}
|
|
388
|
+
></ComponentsWrapper>
|
|
389
|
+
</div>,
|
|
390
|
+
);
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
const editorHasNoTab = React.useMemo(
|
|
394
|
+
() => group.resources.length === 0 || !group.currentResource,
|
|
395
|
+
[group.resources.length, group.currentResource],
|
|
396
|
+
);
|
|
397
|
+
|
|
398
|
+
React.useEffect(() => {
|
|
399
|
+
if (group.currentOpenType?.type === EditorOpenType.code) {
|
|
400
|
+
eventBus.fire(
|
|
401
|
+
new CodeEditorDidVisibleEvent({
|
|
402
|
+
groupName: group.name,
|
|
403
|
+
type: EditorOpenType.code,
|
|
404
|
+
editorId: group.codeEditor.getId(),
|
|
405
|
+
}),
|
|
406
|
+
);
|
|
407
|
+
} else if (group.currentOpenType?.type === EditorOpenType.diff) {
|
|
408
|
+
eventBus.fire(
|
|
409
|
+
new CodeEditorDidVisibleEvent({
|
|
410
|
+
groupName: group.name,
|
|
411
|
+
type: EditorOpenType.diff,
|
|
412
|
+
editorId: group.diffEditor.modifiedEditor.getId(),
|
|
413
|
+
}),
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
|
|
418
|
+
return (
|
|
419
|
+
<EditorContext.Provider value={context}>
|
|
420
|
+
<div
|
|
421
|
+
id={VIEW_CONTAINERS.EDITOR}
|
|
422
|
+
ref={editorBodyRef}
|
|
423
|
+
className={styles.kt_editor_body}
|
|
424
|
+
onDragOver={(e) => {
|
|
425
|
+
e.preventDefault();
|
|
426
|
+
if (editorBodyRef.current) {
|
|
427
|
+
const position = getDragOverPosition(e.nativeEvent, editorBodyRef.current);
|
|
428
|
+
decorateDragOverElement(editorBodyRef.current, position);
|
|
429
|
+
}
|
|
430
|
+
}}
|
|
431
|
+
onDragLeave={(e) => {
|
|
432
|
+
if (editorBodyRef.current) {
|
|
433
|
+
removeDecorationDragOverElement(editorBodyRef.current);
|
|
434
|
+
}
|
|
435
|
+
}}
|
|
436
|
+
onDrop={(e) => {
|
|
437
|
+
if (editorBodyRef.current) {
|
|
438
|
+
removeDecorationDragOverElement(editorBodyRef.current);
|
|
439
|
+
if (e.dataTransfer.getData('uri')) {
|
|
440
|
+
const uri = new URI(e.dataTransfer.getData('uri'));
|
|
441
|
+
let sourceGroup: EditorGroup | undefined;
|
|
442
|
+
if (e.dataTransfer.getData('uri-source-group')) {
|
|
443
|
+
sourceGroup = editorService.getEditorGroup(e.dataTransfer.getData('uri-source-group'));
|
|
428
444
|
}
|
|
445
|
+
group.dropUri(uri, getDragOverPosition(e.nativeEvent, editorBodyRef.current), sourceGroup);
|
|
429
446
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
}}
|
|
439
|
-
onDragLeave={(e) => {
|
|
440
|
-
if (editorBodyRef.current) {
|
|
441
|
-
removeDecorationDragOverElement(editorBodyRef.current);
|
|
442
|
-
}
|
|
443
|
-
}}
|
|
444
|
-
onDrop={(e) => {
|
|
445
|
-
if (editorBodyRef.current) {
|
|
446
|
-
removeDecorationDragOverElement(editorBodyRef.current);
|
|
447
|
-
if (e.dataTransfer.getData('uri')) {
|
|
448
|
-
const uri = new URI(e.dataTransfer.getData('uri'));
|
|
449
|
-
let sourceGroup: EditorGroup | undefined;
|
|
450
|
-
if (e.dataTransfer.getData('uri-source-group')) {
|
|
451
|
-
sourceGroup = editorService.getEditorGroup(e.dataTransfer.getData('uri-source-group'));
|
|
452
|
-
}
|
|
453
|
-
group.dropUri(uri, getDragOverPosition(e.nativeEvent, editorBodyRef.current), sourceGroup);
|
|
454
|
-
}
|
|
455
|
-
if (e.dataTransfer.files.length > 0) {
|
|
456
|
-
eventBus.fire(
|
|
457
|
-
new EditorGroupFileDropEvent({
|
|
458
|
-
group,
|
|
459
|
-
files: e.dataTransfer.files,
|
|
460
|
-
position: getDragOverPosition(e.nativeEvent, editorBodyRef.current),
|
|
461
|
-
}),
|
|
462
|
-
);
|
|
463
|
-
}
|
|
447
|
+
if (e.dataTransfer.files.length > 0) {
|
|
448
|
+
eventBus.fire(
|
|
449
|
+
new EditorGroupFileDropEvent({
|
|
450
|
+
group,
|
|
451
|
+
files: e.dataTransfer.files,
|
|
452
|
+
position: getDragOverPosition(e.nativeEvent, editorBodyRef.current),
|
|
453
|
+
}),
|
|
454
|
+
);
|
|
464
455
|
}
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
<div
|
|
479
|
-
className={cls({
|
|
480
|
-
[styles.kt_editor_code_editor]: true,
|
|
481
|
-
[styles_kt_editor_component]: true,
|
|
482
|
-
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.code,
|
|
483
|
-
})}
|
|
484
|
-
ref={codeEditorRef}
|
|
485
|
-
/>
|
|
486
|
-
<div
|
|
487
|
-
className={cls(styles.kt_editor_diff_editor, styles_kt_editor_component, {
|
|
488
|
-
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.diff,
|
|
489
|
-
})}
|
|
490
|
-
ref={diffEditorRef}
|
|
491
|
-
/>
|
|
492
|
-
<div
|
|
493
|
-
className={cls(styles.kt_editor_diff_3_editor, styles_kt_editor_component, {
|
|
494
|
-
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.mergeEditor,
|
|
495
|
-
})}
|
|
496
|
-
ref={mergeEditorRef}
|
|
497
|
-
/>
|
|
456
|
+
}
|
|
457
|
+
}}
|
|
458
|
+
>
|
|
459
|
+
{group.currentResource && <EditorSideView side={'top'} resource={group.currentResource}></EditorSideView>}
|
|
460
|
+
{!editorHasNoTab && <NavigationBar editorGroup={group} />}
|
|
461
|
+
<div className={styles.kt_editor_components}>
|
|
462
|
+
<div
|
|
463
|
+
className={cls({
|
|
464
|
+
[styles_kt_editor_component]: true,
|
|
465
|
+
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.component,
|
|
466
|
+
})}
|
|
467
|
+
>
|
|
468
|
+
{components}
|
|
498
469
|
</div>
|
|
499
|
-
|
|
470
|
+
<div
|
|
471
|
+
className={cls({
|
|
472
|
+
[styles.kt_editor_code_editor]: true,
|
|
473
|
+
[styles_kt_editor_component]: true,
|
|
474
|
+
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.code,
|
|
475
|
+
})}
|
|
476
|
+
ref={codeEditorRef}
|
|
477
|
+
/>
|
|
478
|
+
<div
|
|
479
|
+
className={cls(styles.kt_editor_diff_editor, styles_kt_editor_component, {
|
|
480
|
+
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.diff,
|
|
481
|
+
})}
|
|
482
|
+
ref={diffEditorRef}
|
|
483
|
+
/>
|
|
484
|
+
<div
|
|
485
|
+
className={cls(styles.kt_editor_diff_3_editor, styles_kt_editor_component, {
|
|
486
|
+
[styles.kt_hidden]: !group.currentOpenType || group.currentOpenType.type !== EditorOpenType.mergeEditor,
|
|
487
|
+
})}
|
|
488
|
+
ref={mergeEditorRef}
|
|
489
|
+
/>
|
|
500
490
|
</div>
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
);
|
|
491
|
+
{group.currentResource && <EditorSideView side={'bottom'} resource={group.currentResource}></EditorSideView>}
|
|
492
|
+
</div>
|
|
493
|
+
</EditorContext.Provider>
|
|
494
|
+
);
|
|
495
|
+
});
|
|
505
496
|
|
|
506
497
|
export const ComponentsWrapper = ({
|
|
507
498
|
component,
|
package/src/browser/index.ts
CHANGED
|
@@ -52,6 +52,7 @@ import {
|
|
|
52
52
|
MonacoCommandService,
|
|
53
53
|
} from './monaco-contrib/command/command.service';
|
|
54
54
|
import { TextmateService } from './monaco-contrib/tokenizer/textmate.service';
|
|
55
|
+
import { NotebookService } from './notebook.service';
|
|
55
56
|
import { EditorPreferenceContribution } from './preference/contribution';
|
|
56
57
|
import { EditorPreferences, editorPreferenceSchema } from './preference/schema';
|
|
57
58
|
import { ResourceServiceImpl } from './resource.service';
|
|
@@ -65,6 +66,7 @@ import {
|
|
|
65
66
|
IEditorFeatureRegistry,
|
|
66
67
|
IEditorTabService,
|
|
67
68
|
ILanguageStatusService,
|
|
69
|
+
INotebookService,
|
|
68
70
|
} from './types';
|
|
69
71
|
import { WorkbenchEditorServiceImpl } from './workbench-editor.service';
|
|
70
72
|
export * from './doc-cache';
|
|
@@ -169,6 +171,10 @@ export class EditorModule extends BrowserModule {
|
|
|
169
171
|
token: IEditorTabService,
|
|
170
172
|
useClass: EditorTabService,
|
|
171
173
|
},
|
|
174
|
+
{
|
|
175
|
+
token: INotebookService,
|
|
176
|
+
useClass: NotebookService,
|
|
177
|
+
},
|
|
172
178
|
EditorPreferenceContribution,
|
|
173
179
|
DefaultDiffEditorContribution,
|
|
174
180
|
MergeEditorContribution,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@opensumi/di';
|
|
2
|
+
import { Emitter, Event, UriComponents, WithEventBus } from '@opensumi/ide-core-browser';
|
|
3
|
+
|
|
4
|
+
import type { INotebookModelAddedData, INotebookService, NotebookDataDto, NotebookDocumentChangeDto } from './types';
|
|
5
|
+
|
|
6
|
+
@Injectable()
|
|
7
|
+
export class NotebookService extends WithEventBus implements INotebookService {
|
|
8
|
+
createNotebook: (data?: NotebookDataDto) => Promise<{ uri: UriComponents }>;
|
|
9
|
+
openNotebook: (uriComponents: UriComponents) => Promise<{ uri: UriComponents }>;
|
|
10
|
+
saveNotebook: (uriComponents: UriComponents) => Promise<boolean>;
|
|
11
|
+
protected _onDidOpenNotebookDocument = new Emitter<INotebookModelAddedData>();
|
|
12
|
+
onDidOpenNotebookDocument: Event<INotebookModelAddedData> = this._onDidOpenNotebookDocument.event;
|
|
13
|
+
protected _onDidCloseNotebookDocument = new Emitter<UriComponents>();
|
|
14
|
+
onDidCloseNotebookDocument: Event<UriComponents> = this._onDidCloseNotebookDocument.event;
|
|
15
|
+
protected _onDidSaveNotebookDocument = new Emitter<UriComponents>();
|
|
16
|
+
onDidSaveNotebookDocument: Event<UriComponents> = this._onDidSaveNotebookDocument.event;
|
|
17
|
+
protected _onDidChangeNotebookDocument = new Emitter<NotebookDocumentChangeDto>();
|
|
18
|
+
onDidChangeNotebookDocument: Event<NotebookDocumentChangeDto> = this._onDidChangeNotebookDocument.event;
|
|
19
|
+
}
|