@opensumi/ide-monaco 3.8.3-next-1746629393.0 → 3.8.3-next-1746753590.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/contrib/multi-diff-editor/resource-label.d.ts +10 -0
- package/lib/browser/contrib/multi-diff-editor/resource-label.d.ts.map +1 -0
- package/lib/browser/contrib/multi-diff-editor/resource-label.js +23 -0
- package/lib/browser/contrib/multi-diff-editor/resource-label.js.map +1 -0
- package/lib/browser/contrib/multi-diff-editor/resource-label.module.less +5 -0
- package/lib/browser/monaco-api/editor.d.ts +2 -1
- package/lib/browser/monaco-api/editor.d.ts.map +1 -1
- package/lib/browser/monaco-api/editor.js +1 -0
- package/lib/browser/monaco-api/editor.js.map +1 -1
- package/lib/browser/monaco-api/index.d.ts +2 -0
- package/lib/browser/monaco-api/index.d.ts.map +1 -1
- package/lib/browser/monaco.service.d.ts +4 -0
- package/lib/browser/monaco.service.d.ts.map +1 -1
- package/lib/browser/monaco.service.js +28 -0
- package/lib/browser/monaco.service.js.map +1 -1
- package/lib/common/observable.d.ts +73 -0
- package/lib/common/observable.d.ts.map +1 -1
- package/lib/common/observable.js +104 -0
- package/lib/common/observable.js.map +1 -1
- package/package.json +11 -11
- package/src/browser/contrib/multi-diff-editor/resource-label.module.less +5 -0
- package/src/browser/contrib/multi-diff-editor/resource-label.ts +23 -0
- package/src/browser/monaco-api/editor.ts +2 -1
- package/src/browser/monaco.service.ts +40 -2
- package/src/common/observable.ts +119 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Uri } from '@opensumi/ide-core-browser';
|
|
2
|
+
import { IResourceLabelOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/workbenchUIElementFactory';
|
|
3
|
+
export declare class ResourceLabel {
|
|
4
|
+
private readonly element;
|
|
5
|
+
constructor(element: HTMLElement);
|
|
6
|
+
setUri(uri: Uri, options?: IResourceLabelOptions): void;
|
|
7
|
+
private renderFile;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=resource-label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-label.d.ts","sourceRoot":"","sources":["../../../../src/browser/contrib/multi-diff-editor/resource-label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAwB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qGAAqG,CAAC;AAI5I,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAEjD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAIhD,OAAO,CAAC,UAAU;IAOlB,KAAK;CAGN"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourceLabel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
6
|
+
const resource_label_module_less_1 = tslib_1.__importDefault(require("./resource-label.module.less"));
|
|
7
|
+
class ResourceLabel {
|
|
8
|
+
constructor(element) {
|
|
9
|
+
this.element = element;
|
|
10
|
+
}
|
|
11
|
+
setUri(uri, options) {
|
|
12
|
+
this.renderFile(ide_core_browser_1.URI.from(uri), options);
|
|
13
|
+
}
|
|
14
|
+
renderFile(uri, options) {
|
|
15
|
+
const icon = (0, ide_core_browser_1.getResourceIconClass)(uri);
|
|
16
|
+
this.element.innerHTML = `<span class="${resource_label_module_less_1.default.resourceLabel}${(options === null || options === void 0 ? void 0 : options.strikethrough) ? ' strikethrough' : ''}"><span class="${icon.iconClass}"></span>${uri.displayName}</span>`;
|
|
17
|
+
}
|
|
18
|
+
clear() {
|
|
19
|
+
this.element.innerHTML = '';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ResourceLabel = ResourceLabel;
|
|
23
|
+
//# sourceMappingURL=resource-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-label.js","sourceRoot":"","sources":["../../../../src/browser/contrib/multi-diff-editor/resource-label.ts"],"names":[],"mappings":";;;;AAAA,iEAA4E;AAG5E,sGAAkD;AAElD,MAAa,aAAa;IACxB,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAErD,MAAM,CAAC,GAAQ,EAAE,OAA+B;QAC9C,IAAI,CAAC,UAAU,CAAC,sBAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,UAAU,CAAC,GAAQ,EAAE,OAA+B;QAC1D,MAAM,IAAI,GAAG,IAAA,uCAAoB,EAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,gBAAgB,oCAAM,CAAC,aAAa,GAC3D,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC9C,kBAAkB,IAAI,CAAC,SAAS,YAAY,GAAG,CAAC,WAAW,SAAS,CAAC;IACvE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;IAC9B,CAAC;CACF;AAjBD,sCAiBC"}
|
|
@@ -5,7 +5,7 @@ import { BareFontInfo, FontInfo } from '@opensumi/monaco-editor-core/esm/vs/edit
|
|
|
5
5
|
import { CursorChangeReason } from '@opensumi/monaco-editor-core/esm/vs/editor/common/cursorEvents';
|
|
6
6
|
import { ScrollType } from '@opensumi/monaco-editor-core/esm/vs/editor/common/editorCommon';
|
|
7
7
|
import { DefaultEndOfLine, EndOfLinePreference, EndOfLineSequence, FindMatch, ITextModelUpdateOptions, MinimapPosition, OverviewRulerLane, TextModelResolvedOptions, TrackedRangeStickiness } from '@opensumi/monaco-editor-core/esm/vs/editor/common/model';
|
|
8
|
-
import { colorize, colorizeElement, colorizeModelLine, create, createDiffEditor, createModel, createWebWorker, defineTheme, getModel, getModelMarkers, getModels, onDidChangeModelLanguage, onDidCreateEditor, onDidCreateModel, onWillDisposeModel, remeasureFonts, setModelLanguage, setModelMarkers, setTheme, tokenize } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor';
|
|
8
|
+
import { colorize, colorizeElement, colorizeModelLine, create, createDiffEditor, createModel, createMultiFileDiffEditor, createWebWorker, defineTheme, getModel, getModelMarkers, getModels, onDidChangeModelLanguage, onDidCreateEditor, onDidCreateModel, onWillDisposeModel, remeasureFonts, setModelLanguage, setModelMarkers, setTheme, tokenize } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor';
|
|
9
9
|
import { AccessibilitySupport } from '@opensumi/monaco-editor-core/esm/vs/platform/accessibility/common/accessibility';
|
|
10
10
|
import { IMarkerData } from '@opensumi/monaco-editor-core/esm/vs/platform/markers/common/markers';
|
|
11
11
|
import type { IDecorationOptions, IModelDecorationOptions, IModelDeltaDecoration } from '@opensumi/monaco-editor-core/esm/vs/editor/common/model';
|
|
@@ -13,6 +13,7 @@ export declare function createMonacoEditorApi(): Readonly<{
|
|
|
13
13
|
create: typeof create;
|
|
14
14
|
onDidCreateEditor: typeof onDidCreateEditor;
|
|
15
15
|
createDiffEditor: typeof createDiffEditor;
|
|
16
|
+
createMultiFileDiffEditor: typeof createMultiFileDiffEditor;
|
|
16
17
|
createModel: typeof createModel;
|
|
17
18
|
setModelLanguage: typeof setModelLanguage;
|
|
18
19
|
setModelMarkers: typeof setModelMarkers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/browser/monaco-api/editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACjG,OAAO,EACL,+BAA+B,EAC/B,WAAW,EACX,eAAe,EACf,+BAA+B,EAChC,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EAEZ,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACf,MAAM,wEAAwE,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mEAAmE,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAC;AACpG,OAAO,EAAc,UAAU,EAAE,MAAM,gEAAgE,CAAC;AACxG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,WAAW,EACX,QAAQ,EACR,eAAe,EACf,SAAS,EACT,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,QAAQ,EACT,MAAM,gFAAgF,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iFAAiF,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,qEAAqE,CAAC;AAElG,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,yDAAyD,CAAC;AAEjE,wBAAgB,qBAAqB
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/browser/monaco-api/editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ function createMonacoEditorApi() {
|
|
|
19
19
|
create: standaloneEditor_1.create,
|
|
20
20
|
onDidCreateEditor: standaloneEditor_1.onDidCreateEditor,
|
|
21
21
|
createDiffEditor: standaloneEditor_1.createDiffEditor,
|
|
22
|
+
createMultiFileDiffEditor: standaloneEditor_1.createMultiFileDiffEditor,
|
|
22
23
|
createModel: standaloneEditor_1.createModel,
|
|
23
24
|
setModelLanguage: standaloneEditor_1.setModelLanguage,
|
|
24
25
|
setModelMarkers: standaloneEditor_1.setModelMarkers,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/browser/monaco-api/editor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../../src/browser/monaco-api/editor.ts"],"names":[],"mappings":";;;AAkEA,sDA2DC;AA7HD,2FAAiG;AACjG,oGAK0E;AAC1E,0GAYgF;AAChF,gGAA2G;AAC3G,iGAAoG;AACpG,iGAAwG;AACxG,mFAUiE;AACjE,qHAsBwF;AACxF,mHAAuH;AACvH,iGAAkG;AA0EhG,4FA1EO,qBAAW,OA0EP;AAlEb,SAAgB,qBAAqB;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,qBAAqB;QACrB,MAAM,EAAN,yBAAM;QACN,iBAAiB,EAAjB,oCAAiB;QACjB,gBAAgB,EAAhB,mCAAgB;QAChB,yBAAyB,EAAzB,4CAAyB;QACzB,WAAW,EAAX,8BAAW;QACX,gBAAgB,EAAhB,mCAAgB;QAChB,eAAe,EAAf,kCAAe;QACf,eAAe,EAAf,kCAAe;QACf,SAAS,EAAT,4BAAS;QACT,QAAQ,EAAR,2BAAQ;QACR,gBAAgB,EAAhB,mCAAgB;QAChB,kBAAkB,EAAlB,qCAAkB;QAClB,wBAAwB,EAAxB,2CAAwB;QACxB,eAAe,EAAf,kCAAe;QAEf,eAAe,EAAf,kCAAe;QACf,QAAQ,EAAR,2BAAQ;QACR,iBAAiB,EAAjB,oCAAiB;QACjB,QAAQ,EAAR,2BAAQ;QACR,WAAW,EAAX,8BAAW;QACX,QAAQ,EAAR,2BAAQ;QACR,cAAc,EAAd,iCAAc;QAEd,QAAQ;QACR,oBAAoB,EAApB,oCAAoB;QACpB,+BAA+B,EAA/B,+CAA+B;QAC/B,kBAAkB,EAAlB,iCAAkB;QAClB,gBAAgB,EAAhB,wBAAgB;QAChB,wBAAwB,EAAxB,wCAAwB;QACxB,YAAY,EAAZ,4BAAY;QACZ,mBAAmB,EAAnB,2BAAmB;QACnB,iBAAiB,EAAjB,yBAAiB;QACjB,eAAe,EAAf,uBAAe;QACf,eAAe,EAAf,+BAAe;QACf,+BAA+B,EAA/B,+CAA+B;QAC/B,iBAAiB,EAAjB,yBAAiB;QACjB,qBAAqB,EAArB,qCAAqB;QACrB,aAAa,EAAb,6BAAa;QACb,mBAAmB,EAAnB,gCAAmB;QACnB,UAAU,EAAV,yBAAU;QACV,6BAA6B,EAA7B,6CAA6B;QAC7B,qBAAqB,EAArB,qCAAqB;QACrB,sBAAsB,EAAtB,8BAAsB;QACtB,cAAc,EAAd,8BAAc;QAEd,UAAU;QACV,yBAAyB,EAAzB,yCAAyB;QACzB,YAAY,EAAZ,uBAAY;QACZ,QAAQ,EAAR,mBAAQ;QACR,wBAAwB,EAAxB,gCAAwB;QACxB,SAAS,EAAT,iBAAS;QAET,OAAO;QACP,UAAU,EAAV,yBAAU;QACV,aAAa,EAAb,6BAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -4,6 +4,7 @@ export declare const monaco: Readonly<{
|
|
|
4
4
|
create: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").create;
|
|
5
5
|
onDidCreateEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").onDidCreateEditor;
|
|
6
6
|
createDiffEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createDiffEditor;
|
|
7
|
+
createMultiFileDiffEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createMultiFileDiffEditor;
|
|
7
8
|
createModel: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createModel;
|
|
8
9
|
setModelLanguage: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").setModelLanguage;
|
|
9
10
|
setModelMarkers: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").setModelMarkers;
|
|
@@ -272,6 +273,7 @@ export declare const monacoApi: Readonly<{
|
|
|
272
273
|
create: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").create;
|
|
273
274
|
onDidCreateEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").onDidCreateEditor;
|
|
274
275
|
createDiffEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createDiffEditor;
|
|
276
|
+
createMultiFileDiffEditor: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createMultiFileDiffEditor;
|
|
275
277
|
createModel: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").createModel;
|
|
276
278
|
setModelLanguage: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").setModelLanguage;
|
|
277
279
|
setModelMarkers: typeof import("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor").setModelMarkers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/monaco-api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,cAAc,EACf,MAAM,wEAAwE,CAAC;AAUhF,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/monaco-api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,cAAc,EACf,MAAM,wEAAwE,CAAC;AAUhF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGjB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAS,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,qDAAqD,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,eAAe,GAChB,MAAM,6EAA6E,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { Disposable, KeybindingService, ServiceNames } from '@opensumi/ide-core-
|
|
|
3
3
|
import { IMergeEditorEditor } from '@opensumi/ide-core-browser/lib/monaco/merge-editor-widget';
|
|
4
4
|
import { IEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/config/editorConfiguration';
|
|
5
5
|
import { IDiffEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
|
|
6
|
+
import { MultiDiffEditorWidget } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget';
|
|
6
7
|
import { IStandaloneEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor';
|
|
7
8
|
import { MonacoService } from '../common';
|
|
8
9
|
import { ICodeEditor, IDiffEditor } from './monaco-api/types';
|
|
@@ -23,6 +24,9 @@ export default class MonacoServiceImpl extends Disposable implements MonacoServi
|
|
|
23
24
|
createDiffEditor(monacoContainer: HTMLElement, options?: IDiffEditorConstructionOptions, overrides?: {
|
|
24
25
|
[key: string]: any;
|
|
25
26
|
}): IDiffEditor;
|
|
27
|
+
createMultiDiffEditorWidget(monacoContainer: HTMLElement, options?: IDiffEditorConstructionOptions, overrides?: {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}): MultiDiffEditorWidget;
|
|
26
30
|
createMergeEditor(monacoContainer: HTMLElement, options?: IDiffEditorConstructionOptions, overrides?: {
|
|
27
31
|
[key: string]: any;
|
|
28
32
|
}): IMergeEditorEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco.service.d.ts","sourceRoot":"","sources":["../../src/browser/monaco.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EACL,UAAU,EAGV,iBAAiB,EAEjB,YAAY,
|
|
1
|
+
{"version":3,"file":"monaco.service.d.ts","sourceRoot":"","sources":["../../src/browser/monaco.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EACL,UAAU,EAGV,iBAAiB,EAEjB,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAC;AAE/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,+EAA+E,CAAC;AAC3H,OAAO,EACL,8BAA8B,EAG/B,MAAM,kEAAkE,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iGAAiG,CAAC;AAGxI,OAAO,EAAE,oCAAoC,EAAE,MAAM,oFAAoF,CAAC;AAM1I,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAM9D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAW,YAAW,aAAa;IAEhF,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAG7B,OAAO,CAAC,eAAe,CAA4B;IAGnD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAgC;IAGxE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAGxD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAGxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,IAAI,iBAAiB,IAWd,oCAAoC,CAC1C;IAEM,gBAAgB,CACrB,eAAe,EAAE,WAAW,EAC5B,OAAO,CAAC,EAAE,0BAA0B,EACpC,SAAS,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GACrC,WAAW;IAkBd,OAAO,CAAC,uBAAuB;IAsB/B,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,qBAAqB;IAatB,gBAAgB,CACrB,eAAe,EAAE,WAAW,EAC5B,OAAO,CAAC,EAAE,8BAA8B,EACxC,SAAS,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GACrC,WAAW;IAcd,2BAA2B,CACzB,eAAe,EAAE,WAAW,EAC5B,OAAO,CAAC,EAAE,8BAA8B,EACxC,SAAS,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GACrC,qBAAqB;IA6BjB,iBAAiB,CACtB,eAAe,EAAE,WAAW,EAC5B,OAAO,CAAC,EAAE,8BAA8B,EACxC,SAAS,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GACrC,kBAAkB;IAQrB,OAAO,CAAC,+BAA+B;IAIvC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAoB3B,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG;IAQxD,WAAW,CAAC,WAAW,EAAE,YAAY;IAQrC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAGrD"}
|
|
@@ -5,9 +5,12 @@ const di_1 = require("@opensumi/di");
|
|
|
5
5
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
6
6
|
const keybindings_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/keybindings");
|
|
7
7
|
const editorBrowser_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser");
|
|
8
|
+
const multiDiffEditorWidget_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget");
|
|
8
9
|
const editorOptions_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/config/editorOptions");
|
|
9
10
|
const editor_main_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/editor.main");
|
|
11
|
+
const standaloneServices_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices");
|
|
10
12
|
const merge_editor_widget_1 = require("./contrib/merge-editor/merge-editor-widget");
|
|
13
|
+
const resource_label_1 = require("./contrib/multi-diff-editor/resource-label");
|
|
11
14
|
const tokenizer_1 = require("./contrib/tokenizer");
|
|
12
15
|
const monaco_api_1 = require("./monaco-api");
|
|
13
16
|
const monaco_resolved_keybinding_1 = require("./monaco.resolved-keybinding");
|
|
@@ -80,6 +83,31 @@ let MonacoServiceImpl = class MonacoServiceImpl extends ide_core_browser_1.Dispo
|
|
|
80
83
|
this.addClickEventListener(editor);
|
|
81
84
|
return editor;
|
|
82
85
|
}
|
|
86
|
+
createMultiDiffEditorWidget(monacoContainer, options, overrides = {}) {
|
|
87
|
+
const instantiationService = standaloneServices_1.StandaloneServices.initialize({
|
|
88
|
+
...this.overrideServiceRegistry.all(),
|
|
89
|
+
...overrides,
|
|
90
|
+
});
|
|
91
|
+
const editorWidget = new multiDiffEditorWidget_1.MultiDiffEditorWidget(monacoContainer, {
|
|
92
|
+
createResourceLabel: (element) => {
|
|
93
|
+
const resourceLabel = new resource_label_1.ResourceLabel(element);
|
|
94
|
+
return {
|
|
95
|
+
setUri: (uri) => {
|
|
96
|
+
if (!uri) {
|
|
97
|
+
resourceLabel.clear();
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
resourceLabel.setUri(uri);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
dispose: () => { },
|
|
104
|
+
};
|
|
105
|
+
},
|
|
106
|
+
}, instantiationService);
|
|
107
|
+
// this.overrideMonacoKeybindingService(editor);
|
|
108
|
+
// this.addClickEventListener(editor);
|
|
109
|
+
return editorWidget;
|
|
110
|
+
}
|
|
83
111
|
createMergeEditor(monacoContainer, options, overrides = {}) {
|
|
84
112
|
return this.injector.get(merge_editor_widget_1.MergeEditorWidget, [
|
|
85
113
|
monacoContainer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monaco.service.js","sourceRoot":"","sources":["../../src/browser/monaco.service.ts"],"names":[],"mappings":";;;AAAA,qCAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"monaco.service.js","sourceRoot":"","sources":["../../src/browser/monaco.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,77 @@ export declare function autorunDelta<T>(observable: IObservable<T>, handler: (ar
|
|
|
12
12
|
}, reader: IReader) => void): IDisposable;
|
|
13
13
|
export declare function debouncedObservable2<T>(observable: IObservable<T>, debounceMs: number): IObservable<T>;
|
|
14
14
|
export declare function onObservableChange<T>(observable: IObservable<unknown, T>, callback: (value: T) => void): IDisposable;
|
|
15
|
+
export declare class ObservableLazy<T> {
|
|
16
|
+
private readonly _computeValue;
|
|
17
|
+
private readonly _value;
|
|
18
|
+
/**
|
|
19
|
+
* The cached value.
|
|
20
|
+
* Does not force a computation of the value.
|
|
21
|
+
*/
|
|
22
|
+
get cachedValue(): IObservable<T | undefined>;
|
|
23
|
+
constructor(_computeValue: () => T);
|
|
24
|
+
/**
|
|
25
|
+
* Returns the cached value.
|
|
26
|
+
* Computes the value if the value has not been cached yet.
|
|
27
|
+
*/
|
|
28
|
+
getValue(): T;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A promise whose state is observable.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ObservablePromise<T> {
|
|
34
|
+
static fromFn<T>(fn: () => Promise<T>): ObservablePromise<T>;
|
|
35
|
+
private readonly _value;
|
|
36
|
+
/**
|
|
37
|
+
* The promise that this object wraps.
|
|
38
|
+
*/
|
|
39
|
+
readonly promise: Promise<T>;
|
|
40
|
+
/**
|
|
41
|
+
* The current state of the promise.
|
|
42
|
+
* Is `undefined` if the promise didn't resolve yet.
|
|
43
|
+
*/
|
|
44
|
+
readonly promiseResult: IObservable<PromiseResult<T> | undefined>;
|
|
45
|
+
constructor(promise: Promise<T>);
|
|
46
|
+
}
|
|
47
|
+
export declare class PromiseResult<T> {
|
|
48
|
+
/**
|
|
49
|
+
* The value of the resolved promise.
|
|
50
|
+
* Undefined if the promise rejected.
|
|
51
|
+
*/
|
|
52
|
+
readonly data: T | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* The error in case of a rejected promise.
|
|
55
|
+
* Undefined if the promise resolved.
|
|
56
|
+
*/
|
|
57
|
+
readonly error: unknown | undefined;
|
|
58
|
+
constructor(
|
|
59
|
+
/**
|
|
60
|
+
* The value of the resolved promise.
|
|
61
|
+
* Undefined if the promise rejected.
|
|
62
|
+
*/
|
|
63
|
+
data: T | undefined,
|
|
64
|
+
/**
|
|
65
|
+
* The error in case of a rejected promise.
|
|
66
|
+
* Undefined if the promise resolved.
|
|
67
|
+
*/
|
|
68
|
+
error: unknown | undefined);
|
|
69
|
+
/**
|
|
70
|
+
* Returns the value if the promise resolved, otherwise throws the error.
|
|
71
|
+
*/
|
|
72
|
+
getDataOrThrow(): T;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A lazy promise whose state is observable.
|
|
76
|
+
*/
|
|
77
|
+
export declare class ObservableLazyPromise<T> {
|
|
78
|
+
private readonly _computePromise;
|
|
79
|
+
private readonly _lazyValue;
|
|
80
|
+
/**
|
|
81
|
+
* Does not enforce evaluation of the promise compute function.
|
|
82
|
+
* Is undefined if the promise has not been computed yet.
|
|
83
|
+
*/
|
|
84
|
+
readonly cachedPromiseResult: IObservable<PromiseResult<T> | undefined>;
|
|
85
|
+
constructor(_computePromise: () => Promise<T>);
|
|
86
|
+
getPromise(): Promise<T>;
|
|
87
|
+
}
|
|
15
88
|
//# sourceMappingURL=observable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/common/observable.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAEX,OAAO,
|
|
1
|
+
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/common/observable.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAEX,OAAO,EAGR,MAAM,yEAAyE,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,sFAAsF,CAAC;AAInH,cAAc,4EAA4E,CAAC;AAC3F,cAAc,yEAAyE,CAAC;AACxF,cAAc,8EAA8E,CAAC;AAC7F,cAAc,4EAA4E,CAAC;AAC3F,cAAc,4EAA4E,CAAC;AAC3F,cAAc,0EAA0E,CAAC;AAEzF,wBAAgB,YAAY,CAAC,CAAC,EAC5B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,EAAE,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,CAAC,CAAA;CAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAClF,WAAW,CAQb;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAwCtG;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,WAAW,CAkBpH;AAED,qBAAa,cAAc,CAAC,CAAC;IAWf,OAAO,CAAC,QAAQ,CAAC,aAAa;IAV1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAE1E;;;OAGG;IACH,IAAW,WAAW,IAAI,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAEnD;gBAE4B,aAAa,EAAE,MAAM,CAAC;IAEnD;;;OAGG;IACI,QAAQ;CAQhB;AAED;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC;WAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkE;IAEzF;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC;;;OAGG;IACH,SAAgB,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAe;gBAE3E,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CAmBhC;AAED,qBAAa,aAAa,CAAC,CAAC;IAExB;;;OAGG;aACa,IAAI,EAAE,CAAC,GAAG,SAAS;IAEnC;;;OAGG;aACa,KAAK,EAAE,OAAO,GAAG,SAAS;;IAV1C;;;OAGG;IACa,IAAI,EAAE,CAAC,GAAG,SAAS;IAEnC;;;OAGG;IACa,KAAK,EAAE,OAAO,GAAG,SAAS;IAG5C;;OAEG;IACI,cAAc,IAAI,CAAC;CAM3B;AAED;;GAEG;AACH,qBAAa,qBAAqB,CAAC,CAAC;IAWtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAV5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2E;IAEtG;;;OAGG;IACH,SAAgB,mBAAmB,4CAEjC;gBAE2B,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAEvD,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;CAGhC"}
|
package/lib/common/observable.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObservableLazyPromise = exports.PromiseResult = exports.ObservablePromise = exports.ObservableLazy = void 0;
|
|
3
4
|
exports.autorunDelta = autorunDelta;
|
|
4
5
|
exports.debouncedObservable2 = debouncedObservable2;
|
|
5
6
|
exports.onObservableChange = onObservableChange;
|
|
6
7
|
const tslib_1 = require("tslib");
|
|
7
8
|
// @ts-nocheck
|
|
8
9
|
const autorun_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/autorun");
|
|
10
|
+
const base_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/base");
|
|
11
|
+
const derived_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/derived");
|
|
9
12
|
const utils_1 = require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/utils");
|
|
10
13
|
tslib_1.__exportStar(require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/autorun"), exports);
|
|
11
14
|
tslib_1.__exportStar(require("@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/base"), exports);
|
|
@@ -77,4 +80,105 @@ function onObservableChange(observable, callback) {
|
|
|
77
80
|
},
|
|
78
81
|
};
|
|
79
82
|
}
|
|
83
|
+
class ObservableLazy {
|
|
84
|
+
/**
|
|
85
|
+
* The cached value.
|
|
86
|
+
* Does not force a computation of the value.
|
|
87
|
+
*/
|
|
88
|
+
get cachedValue() {
|
|
89
|
+
return this._value;
|
|
90
|
+
}
|
|
91
|
+
constructor(_computeValue) {
|
|
92
|
+
this._computeValue = _computeValue;
|
|
93
|
+
this._value = (0, base_1.observableValue)(this, undefined);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Returns the cached value.
|
|
97
|
+
* Computes the value if the value has not been cached yet.
|
|
98
|
+
*/
|
|
99
|
+
getValue() {
|
|
100
|
+
let v = this._value.get();
|
|
101
|
+
if (!v) {
|
|
102
|
+
v = this._computeValue();
|
|
103
|
+
this._value.set(v, undefined);
|
|
104
|
+
}
|
|
105
|
+
return v;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ObservableLazy = ObservableLazy;
|
|
109
|
+
/**
|
|
110
|
+
* A promise whose state is observable.
|
|
111
|
+
*/
|
|
112
|
+
class ObservablePromise {
|
|
113
|
+
static fromFn(fn) {
|
|
114
|
+
return new ObservablePromise(fn());
|
|
115
|
+
}
|
|
116
|
+
constructor(promise) {
|
|
117
|
+
this._value = (0, base_1.observableValue)(this, undefined);
|
|
118
|
+
/**
|
|
119
|
+
* The current state of the promise.
|
|
120
|
+
* Is `undefined` if the promise didn't resolve yet.
|
|
121
|
+
*/
|
|
122
|
+
this.promiseResult = this._value;
|
|
123
|
+
this.promise = promise.then((value) => {
|
|
124
|
+
// TODO: 只有一次更新,有必要上tx吗?
|
|
125
|
+
(0, base_1.transaction)((tx) => {
|
|
126
|
+
/** @description onPromiseResolved */
|
|
127
|
+
this._value.set(new PromiseResult(value, undefined), tx);
|
|
128
|
+
});
|
|
129
|
+
return value;
|
|
130
|
+
}, (error) => {
|
|
131
|
+
(0, base_1.transaction)((tx) => {
|
|
132
|
+
/** @description onPromiseRejected */
|
|
133
|
+
this._value.set(new PromiseResult(undefined, error), tx);
|
|
134
|
+
});
|
|
135
|
+
throw error;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.ObservablePromise = ObservablePromise;
|
|
140
|
+
class PromiseResult {
|
|
141
|
+
constructor(
|
|
142
|
+
/**
|
|
143
|
+
* The value of the resolved promise.
|
|
144
|
+
* Undefined if the promise rejected.
|
|
145
|
+
*/
|
|
146
|
+
data,
|
|
147
|
+
/**
|
|
148
|
+
* The error in case of a rejected promise.
|
|
149
|
+
* Undefined if the promise resolved.
|
|
150
|
+
*/
|
|
151
|
+
error) {
|
|
152
|
+
this.data = data;
|
|
153
|
+
this.error = error;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Returns the value if the promise resolved, otherwise throws the error.
|
|
157
|
+
*/
|
|
158
|
+
getDataOrThrow() {
|
|
159
|
+
if (this.error) {
|
|
160
|
+
throw this.error;
|
|
161
|
+
}
|
|
162
|
+
return this.data;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.PromiseResult = PromiseResult;
|
|
166
|
+
/**
|
|
167
|
+
* A lazy promise whose state is observable.
|
|
168
|
+
*/
|
|
169
|
+
class ObservableLazyPromise {
|
|
170
|
+
constructor(_computePromise) {
|
|
171
|
+
this._computePromise = _computePromise;
|
|
172
|
+
this._lazyValue = new ObservableLazy(() => new ObservablePromise(this._computePromise()));
|
|
173
|
+
/**
|
|
174
|
+
* Does not enforce evaluation of the promise compute function.
|
|
175
|
+
* Is undefined if the promise has not been computed yet.
|
|
176
|
+
*/
|
|
177
|
+
this.cachedPromiseResult = (0, derived_1.derived)(this, (reader) => { var _a; return (_a = this._lazyValue.cachedValue.read(reader)) === null || _a === void 0 ? void 0 : _a.promiseResult.read(reader); });
|
|
178
|
+
}
|
|
179
|
+
getPromise() {
|
|
180
|
+
return this._lazyValue.getValue().promise;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.ObservableLazyPromise = ObservableLazyPromise;
|
|
80
184
|
//# sourceMappingURL=observable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/common/observable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/common/observable.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-monaco",
|
|
3
|
-
"version": "3.8.3-next-
|
|
3
|
+
"version": "3.8.3-next-1746753590.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src",
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
"build:worker": "../../node_modules/.bin/webpack --config webpack.config.js"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@opensumi/ide-components": "3.8.3-next-
|
|
19
|
-
"@opensumi/ide-core-browser": "3.8.3-next-
|
|
20
|
-
"@opensumi/ide-core-common": "3.8.3-next-
|
|
21
|
-
"@opensumi/ide-overlay": "3.8.3-next-
|
|
22
|
-
"@opensumi/ide-theme": "3.8.3-next-
|
|
23
|
-
"@opensumi/ide-utils": "3.8.3-next-
|
|
18
|
+
"@opensumi/ide-components": "3.8.3-next-1746753590.0",
|
|
19
|
+
"@opensumi/ide-core-browser": "3.8.3-next-1746753590.0",
|
|
20
|
+
"@opensumi/ide-core-common": "3.8.3-next-1746753590.0",
|
|
21
|
+
"@opensumi/ide-overlay": "3.8.3-next-1746753590.0",
|
|
22
|
+
"@opensumi/ide-theme": "3.8.3-next-1746753590.0",
|
|
23
|
+
"@opensumi/ide-utils": "3.8.3-next-1746753590.0",
|
|
24
24
|
"@opensumi/monaco-editor-core": "0.54.0-patch.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@opensumi/ide-dev-tool": "3.8.3-next-
|
|
28
|
-
"@opensumi/ide-file-service": "3.8.3-next-
|
|
29
|
-
"@opensumi/ide-workspace": "3.8.3-next-
|
|
27
|
+
"@opensumi/ide-dev-tool": "3.8.3-next-1746753590.0",
|
|
28
|
+
"@opensumi/ide-file-service": "3.8.3-next-1746753590.0",
|
|
29
|
+
"@opensumi/ide-workspace": "3.8.3-next-1746753590.0"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "a728f8b5762537285653a9e868c754362eef40b8"
|
|
32
32
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { URI, Uri, getResourceIconClass } from '@opensumi/ide-core-browser';
|
|
2
|
+
import { IResourceLabelOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/workbenchUIElementFactory';
|
|
3
|
+
|
|
4
|
+
import styles from './resource-label.module.less';
|
|
5
|
+
|
|
6
|
+
export class ResourceLabel {
|
|
7
|
+
constructor(private readonly element: HTMLElement) {}
|
|
8
|
+
|
|
9
|
+
setUri(uri: Uri, options?: IResourceLabelOptions) {
|
|
10
|
+
this.renderFile(URI.from(uri), options);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
private renderFile(uri: URI, options?: IResourceLabelOptions) {
|
|
14
|
+
const icon = getResourceIconClass(uri);
|
|
15
|
+
this.element.innerHTML = `<span class="${styles.resourceLabel}${
|
|
16
|
+
options?.strikethrough ? ' strikethrough' : ''
|
|
17
|
+
}"><span class="${icon.iconClass}"></span>${uri.displayName}</span>`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
clear() {
|
|
21
|
+
this.element.innerHTML = '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
create,
|
|
40
40
|
createDiffEditor,
|
|
41
41
|
createModel,
|
|
42
|
+
createMultiFileDiffEditor,
|
|
42
43
|
createWebWorker,
|
|
43
44
|
defineTheme,
|
|
44
45
|
getModel,
|
|
@@ -69,7 +70,7 @@ export function createMonacoEditorApi() {
|
|
|
69
70
|
create,
|
|
70
71
|
onDidCreateEditor,
|
|
71
72
|
createDiffEditor,
|
|
72
|
-
|
|
73
|
+
createMultiFileDiffEditor,
|
|
73
74
|
createModel,
|
|
74
75
|
setModelLanguage,
|
|
75
76
|
setModelMarkers,
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
KeybindingService,
|
|
7
7
|
MonacoOverrideServiceRegistry,
|
|
8
8
|
ServiceNames,
|
|
9
|
+
Uri,
|
|
9
10
|
} from '@opensumi/ide-core-browser';
|
|
10
11
|
import { IMergeEditorEditor } from '@opensumi/ide-core-browser/lib/monaco/merge-editor-widget';
|
|
11
12
|
import { KeyCodeChord } from '@opensumi/monaco-editor-core/esm/vs/base/common/keybindings';
|
|
@@ -15,19 +16,23 @@ import {
|
|
|
15
16
|
MouseTargetType,
|
|
16
17
|
isDiffEditor,
|
|
17
18
|
} from '@opensumi/monaco-editor-core/esm/vs/editor/browser/editorBrowser';
|
|
19
|
+
import { MultiDiffEditorWidget } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget';
|
|
18
20
|
import { ShowLightbulbIconMode } from '@opensumi/monaco-editor-core/esm/vs/editor/common/config/editorOptions';
|
|
19
21
|
import { Range } from '@opensumi/monaco-editor-core/esm/vs/editor/editor.main';
|
|
20
22
|
import { IStandaloneEditorConstructionOptions } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor';
|
|
21
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
StandaloneKeybindingService,
|
|
25
|
+
StandaloneServices,
|
|
26
|
+
} from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
|
|
22
27
|
|
|
23
28
|
import { MonacoService } from '../common';
|
|
24
29
|
|
|
25
30
|
import { MergeEditorWidget } from './contrib/merge-editor/merge-editor-widget';
|
|
31
|
+
import { ResourceLabel } from './contrib/multi-diff-editor/resource-label';
|
|
26
32
|
import { ITextmateTokenizer, ITextmateTokenizerService } from './contrib/tokenizer';
|
|
27
33
|
import { monaco } from './monaco-api';
|
|
28
34
|
import { ICodeEditor, IDiffEditor } from './monaco-api/types';
|
|
29
35
|
import { MonacoResolvedKeybinding } from './monaco.resolved-keybinding';
|
|
30
|
-
|
|
31
36
|
// const SUMI_OVERFLOW_WIDGETS_CONTAINER_ID = 'sumi-overflow-widgets-container';
|
|
32
37
|
type IEditorType = IDiffEditor | ICodeEditor | IMergeEditorEditor;
|
|
33
38
|
|
|
@@ -153,6 +158,39 @@ export default class MonacoServiceImpl extends Disposable implements MonacoServi
|
|
|
153
158
|
return editor;
|
|
154
159
|
}
|
|
155
160
|
|
|
161
|
+
createMultiDiffEditorWidget(
|
|
162
|
+
monacoContainer: HTMLElement,
|
|
163
|
+
options?: IDiffEditorConstructionOptions,
|
|
164
|
+
overrides: { [key: string]: any } = {},
|
|
165
|
+
): MultiDiffEditorWidget {
|
|
166
|
+
const instantiationService = StandaloneServices.initialize({
|
|
167
|
+
...this.overrideServiceRegistry.all(),
|
|
168
|
+
...overrides,
|
|
169
|
+
});
|
|
170
|
+
const editorWidget = new MultiDiffEditorWidget(
|
|
171
|
+
monacoContainer,
|
|
172
|
+
{
|
|
173
|
+
createResourceLabel: (element: HTMLElement) => {
|
|
174
|
+
const resourceLabel = new ResourceLabel(element);
|
|
175
|
+
return {
|
|
176
|
+
setUri: (uri: Uri) => {
|
|
177
|
+
if (!uri) {
|
|
178
|
+
resourceLabel.clear();
|
|
179
|
+
} else {
|
|
180
|
+
resourceLabel.setUri(uri);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
dispose: () => {},
|
|
184
|
+
};
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
instantiationService,
|
|
188
|
+
);
|
|
189
|
+
// this.overrideMonacoKeybindingService(editor);
|
|
190
|
+
// this.addClickEventListener(editor);
|
|
191
|
+
return editorWidget;
|
|
192
|
+
}
|
|
193
|
+
|
|
156
194
|
public createMergeEditor(
|
|
157
195
|
monacoContainer: HTMLElement,
|
|
158
196
|
options?: IDiffEditorConstructionOptions,
|
package/src/common/observable.ts
CHANGED
|
@@ -4,8 +4,11 @@ import {
|
|
|
4
4
|
IObservable,
|
|
5
5
|
IObserver,
|
|
6
6
|
IReader,
|
|
7
|
+
observableValue,
|
|
8
|
+
transaction,
|
|
7
9
|
} from '@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/base';
|
|
8
10
|
import { IDisposable } from '@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/commonFacade/deps';
|
|
11
|
+
import { derived } from '@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/derived';
|
|
9
12
|
import { observableFromEvent } from '@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/utils';
|
|
10
13
|
|
|
11
14
|
export * from '@opensumi/monaco-editor-core/esm/vs/base/common/observableInternal/autorun';
|
|
@@ -89,3 +92,119 @@ export function onObservableChange<T>(observable: IObservable<unknown, T>, callb
|
|
|
89
92
|
},
|
|
90
93
|
};
|
|
91
94
|
}
|
|
95
|
+
|
|
96
|
+
export class ObservableLazy<T> {
|
|
97
|
+
private readonly _value = observableValue<T | undefined>(this, undefined);
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The cached value.
|
|
101
|
+
* Does not force a computation of the value.
|
|
102
|
+
*/
|
|
103
|
+
public get cachedValue(): IObservable<T | undefined> {
|
|
104
|
+
return this._value;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
constructor(private readonly _computeValue: () => T) {}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Returns the cached value.
|
|
111
|
+
* Computes the value if the value has not been cached yet.
|
|
112
|
+
*/
|
|
113
|
+
public getValue() {
|
|
114
|
+
let v = this._value.get();
|
|
115
|
+
if (!v) {
|
|
116
|
+
v = this._computeValue();
|
|
117
|
+
this._value.set(v, undefined);
|
|
118
|
+
}
|
|
119
|
+
return v;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* A promise whose state is observable.
|
|
125
|
+
*/
|
|
126
|
+
export class ObservablePromise<T> {
|
|
127
|
+
public static fromFn<T>(fn: () => Promise<T>): ObservablePromise<T> {
|
|
128
|
+
return new ObservablePromise(fn());
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
private readonly _value = observableValue<PromiseResult<T> | undefined>(this, undefined);
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The promise that this object wraps.
|
|
135
|
+
*/
|
|
136
|
+
public readonly promise: Promise<T>;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The current state of the promise.
|
|
140
|
+
* Is `undefined` if the promise didn't resolve yet.
|
|
141
|
+
*/
|
|
142
|
+
public readonly promiseResult: IObservable<PromiseResult<T> | undefined> = this._value;
|
|
143
|
+
|
|
144
|
+
constructor(promise: Promise<T>) {
|
|
145
|
+
this.promise = promise.then(
|
|
146
|
+
(value) => {
|
|
147
|
+
// TODO: 只有一次更新,有必要上tx吗?
|
|
148
|
+
transaction((tx) => {
|
|
149
|
+
/** @description onPromiseResolved */
|
|
150
|
+
this._value.set(new PromiseResult(value, undefined), tx);
|
|
151
|
+
});
|
|
152
|
+
return value;
|
|
153
|
+
},
|
|
154
|
+
(error) => {
|
|
155
|
+
transaction((tx) => {
|
|
156
|
+
/** @description onPromiseRejected */
|
|
157
|
+
this._value.set(new PromiseResult<T>(undefined, error), tx);
|
|
158
|
+
});
|
|
159
|
+
throw error;
|
|
160
|
+
},
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export class PromiseResult<T> {
|
|
166
|
+
constructor(
|
|
167
|
+
/**
|
|
168
|
+
* The value of the resolved promise.
|
|
169
|
+
* Undefined if the promise rejected.
|
|
170
|
+
*/
|
|
171
|
+
public readonly data: T | undefined,
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* The error in case of a rejected promise.
|
|
175
|
+
* Undefined if the promise resolved.
|
|
176
|
+
*/
|
|
177
|
+
public readonly error: unknown | undefined,
|
|
178
|
+
) {}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Returns the value if the promise resolved, otherwise throws the error.
|
|
182
|
+
*/
|
|
183
|
+
public getDataOrThrow(): T {
|
|
184
|
+
if (this.error) {
|
|
185
|
+
throw this.error;
|
|
186
|
+
}
|
|
187
|
+
return this.data!;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* A lazy promise whose state is observable.
|
|
193
|
+
*/
|
|
194
|
+
export class ObservableLazyPromise<T> {
|
|
195
|
+
private readonly _lazyValue = new ObservableLazy(() => new ObservablePromise(this._computePromise()));
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Does not enforce evaluation of the promise compute function.
|
|
199
|
+
* Is undefined if the promise has not been computed yet.
|
|
200
|
+
*/
|
|
201
|
+
public readonly cachedPromiseResult = derived(this, (reader) =>
|
|
202
|
+
this._lazyValue.cachedValue.read(reader)?.promiseResult.read(reader),
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
constructor(private readonly _computePromise: () => Promise<T>) {}
|
|
206
|
+
|
|
207
|
+
public getPromise(): Promise<T> {
|
|
208
|
+
return this._lazyValue.getValue().promise;
|
|
209
|
+
}
|
|
210
|
+
}
|