@theia/scm 1.64.0-next.28 → 1.64.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/decorations/scm-decorations-service.d.ts.map +1 -1
- package/lib/browser/decorations/scm-decorations-service.js +19 -1
- package/lib/browser/decorations/scm-decorations-service.js.map +1 -1
- package/lib/browser/merge-editor/merge-editor-contribution.d.ts +34 -0
- package/lib/browser/merge-editor/merge-editor-contribution.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor-contribution.js +335 -0
- package/lib/browser/merge-editor/merge-editor-contribution.js.map +1 -0
- package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts +31 -0
- package/lib/browser/merge-editor/merge-editor-dev-contribution.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor-dev-contribution.js +151 -0
- package/lib/browser/merge-editor/merge-editor-dev-contribution.js.map +1 -0
- package/lib/browser/merge-editor/merge-editor-module.d.ts +24 -0
- package/lib/browser/merge-editor/merge-editor-module.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor-module.js +109 -0
- package/lib/browser/merge-editor/merge-editor-module.js.map +1 -0
- package/lib/browser/merge-editor/merge-editor.d.ts +122 -0
- package/lib/browser/merge-editor/merge-editor.d.ts.map +1 -0
- package/lib/browser/merge-editor/merge-editor.js +560 -0
- package/lib/browser/merge-editor/merge-editor.js.map +1 -0
- package/lib/browser/merge-editor/model/line-range.d.ts +37 -0
- package/lib/browser/merge-editor/model/line-range.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/line-range.js +111 -0
- package/lib/browser/merge-editor/model/line-range.js.map +1 -0
- package/lib/browser/merge-editor/model/live-diff.d.ts +26 -0
- package/lib/browser/merge-editor/model/live-diff.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/live-diff.js +85 -0
- package/lib/browser/merge-editor/model/live-diff.js.map +1 -0
- package/lib/browser/merge-editor/model/merge-editor-model.d.ts +116 -0
- package/lib/browser/merge-editor/model/merge-editor-model.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/merge-editor-model.js +507 -0
- package/lib/browser/merge-editor/model/merge-editor-model.js.map +1 -0
- package/lib/browser/merge-editor/model/merge-range.d.ts +50 -0
- package/lib/browser/merge-editor/model/merge-range.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/merge-range.js +215 -0
- package/lib/browser/merge-editor/model/merge-range.js.map +1 -0
- package/lib/browser/merge-editor/model/range-editing.d.ts +21 -0
- package/lib/browser/merge-editor/model/range-editing.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/range-editing.js +68 -0
- package/lib/browser/merge-editor/model/range-editing.js.map +1 -0
- package/lib/browser/merge-editor/model/range-mapping.d.ts +106 -0
- package/lib/browser/merge-editor/model/range-mapping.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/range-mapping.js +252 -0
- package/lib/browser/merge-editor/model/range-mapping.js.map +1 -0
- package/lib/browser/merge-editor/model/range-mapping.spec.d.ts +2 -0
- package/lib/browser/merge-editor/model/range-mapping.spec.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/range-mapping.spec.js +48 -0
- package/lib/browser/merge-editor/model/range-mapping.spec.js.map +1 -0
- package/lib/browser/merge-editor/model/range-utils.d.ts +25 -0
- package/lib/browser/merge-editor/model/range-utils.d.ts.map +1 -0
- package/lib/browser/merge-editor/model/range-utils.js +118 -0
- package/lib/browser/merge-editor/model/range-utils.js.map +1 -0
- package/lib/browser/merge-editor/view/diff-spacers.d.ts +50 -0
- package/lib/browser/merge-editor/view/diff-spacers.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/diff-spacers.js +133 -0
- package/lib/browser/merge-editor/view/diff-spacers.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts +6 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/index.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/index.js +24 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/index.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts +12 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js +65 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts +30 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js +102 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts +49 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js +214 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts +16 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js +107 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts +27 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js +135 -0
- package/lib/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts +20 -0
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js +218 -0
- package/lib/browser/merge-editor/view/merge-editor-scroll-sync.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts +57 -0
- package/lib/browser/merge-editor/view/merge-editor-view-zones.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-editor-view-zones.js +218 -0
- package/lib/browser/merge-editor/view/merge-editor-view-zones.js.map +1 -0
- package/lib/browser/merge-editor/view/merge-range-actions.d.ts +23 -0
- package/lib/browser/merge-editor/view/merge-range-actions.d.ts.map +1 -0
- package/lib/browser/merge-editor/view/merge-range-actions.js +142 -0
- package/lib/browser/merge-editor/view/merge-range-actions.js.map +1 -0
- package/lib/browser/scm-colors.d.ts +2 -0
- package/lib/browser/scm-colors.d.ts.map +1 -1
- package/lib/browser/scm-colors.js +2 -0
- package/lib/browser/scm-colors.js.map +1 -1
- package/lib/browser/scm-frontend-module.d.ts.map +1 -1
- package/lib/browser/scm-frontend-module.js +2 -0
- package/lib/browser/scm-frontend-module.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/decorations/scm-decorations-service.ts +18 -1
- package/src/browser/merge-editor/merge-editor-contribution.ts +346 -0
- package/src/browser/merge-editor/merge-editor-dev-contribution.ts +154 -0
- package/src/browser/merge-editor/merge-editor-module.ts +134 -0
- package/src/browser/merge-editor/merge-editor.ts +643 -0
- package/src/browser/merge-editor/model/line-range.ts +128 -0
- package/src/browser/merge-editor/model/live-diff.ts +111 -0
- package/src/browser/merge-editor/model/merge-editor-model.ts +623 -0
- package/src/browser/merge-editor/model/merge-range.ts +268 -0
- package/src/browser/merge-editor/model/range-editing.ts +81 -0
- package/src/browser/merge-editor/model/range-mapping.spec.ts +52 -0
- package/src/browser/merge-editor/model/range-mapping.ts +396 -0
- package/src/browser/merge-editor/model/range-utils.ts +115 -0
- package/src/browser/merge-editor/view/diff-spacers.ts +160 -0
- package/src/browser/merge-editor/view/merge-editor-panes/index.ts +21 -0
- package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-base-pane.ts +71 -0
- package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane-header.tsx +106 -0
- package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-pane.ts +246 -0
- package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-result-pane.ts +115 -0
- package/src/browser/merge-editor/view/merge-editor-panes/merge-editor-side-pane.ts +139 -0
- package/src/browser/merge-editor/view/merge-editor-scroll-sync.ts +241 -0
- package/src/browser/merge-editor/view/merge-editor-view-zones.ts +264 -0
- package/src/browser/merge-editor/view/merge-range-actions.ts +159 -0
- package/src/browser/scm-colors.ts +2 -0
- package/src/browser/scm-frontend-module.ts +4 -0
- package/src/browser/style/merge-editor.css +221 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MergeEditorDevContribution = exports.MergeEditorDevCommands = void 0;
|
|
19
|
+
const tslib_1 = require("tslib");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
23
|
+
const clipboard_service_1 = require("@theia/core/lib/browser/clipboard-service");
|
|
24
|
+
const language_service_1 = require("@theia/core/lib/browser/language-service");
|
|
25
|
+
const merge_editor_1 = require("./merge-editor");
|
|
26
|
+
var MergeEditorDevCommands;
|
|
27
|
+
(function (MergeEditorDevCommands) {
|
|
28
|
+
MergeEditorDevCommands.MERGE_EDITOR_DEV_CATEGORY = 'Merge Editor (Dev)';
|
|
29
|
+
MergeEditorDevCommands.COPY_CONTENTS_TO_JSON = core_1.Command.toDefaultLocalizedCommand({
|
|
30
|
+
id: 'mergeEditor.dev.copyContentsToJSON',
|
|
31
|
+
label: 'Copy Merge Editor State as JSON',
|
|
32
|
+
category: MergeEditorDevCommands.MERGE_EDITOR_DEV_CATEGORY
|
|
33
|
+
});
|
|
34
|
+
MergeEditorDevCommands.OPEN_CONTENTS_FROM_JSON = core_1.Command.toDefaultLocalizedCommand({
|
|
35
|
+
id: 'mergeEditor.dev.openContentsFromJSON',
|
|
36
|
+
label: 'Open Merge Editor State from JSON',
|
|
37
|
+
category: MergeEditorDevCommands.MERGE_EDITOR_DEV_CATEGORY
|
|
38
|
+
});
|
|
39
|
+
})(MergeEditorDevCommands || (exports.MergeEditorDevCommands = MergeEditorDevCommands = {}));
|
|
40
|
+
let MergeEditorDevContribution = class MergeEditorDevContribution {
|
|
41
|
+
getMergeEditor(widget = this.shell.currentWidget) {
|
|
42
|
+
return widget instanceof merge_editor_1.MergeEditor ? widget : ((widget === null || widget === void 0 ? void 0 : widget.parent) ? this.getMergeEditor(widget.parent) : undefined);
|
|
43
|
+
}
|
|
44
|
+
registerCommands(commands) {
|
|
45
|
+
commands.registerCommand(MergeEditorDevCommands.COPY_CONTENTS_TO_JSON, {
|
|
46
|
+
execute: widget => {
|
|
47
|
+
const editor = this.getMergeEditor(widget);
|
|
48
|
+
if (editor) {
|
|
49
|
+
this.copyContentsToJSON(editor);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
isEnabled: widget => !!this.getMergeEditor(widget),
|
|
53
|
+
isVisible: widget => !!this.getMergeEditor(widget)
|
|
54
|
+
});
|
|
55
|
+
commands.registerCommand(MergeEditorDevCommands.OPEN_CONTENTS_FROM_JSON, {
|
|
56
|
+
execute: () => this.openContentsFromJSON().catch(error => this.messageService.error(error.message))
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
copyContentsToJSON(editor) {
|
|
60
|
+
const { model } = editor;
|
|
61
|
+
const editorContents = {
|
|
62
|
+
base: model.baseDocument.getText(),
|
|
63
|
+
input1: model.side1Document.getText(),
|
|
64
|
+
input2: model.side2Document.getText(),
|
|
65
|
+
result: model.resultDocument.getText(),
|
|
66
|
+
languageId: model.resultDocument.getLanguageId()
|
|
67
|
+
};
|
|
68
|
+
this.clipboardService.writeText(JSON.stringify(editorContents, undefined, 2));
|
|
69
|
+
this.messageService.info(core_1.nls.localizeByDefault('Successfully copied merge editor state'));
|
|
70
|
+
}
|
|
71
|
+
async openContentsFromJSON() {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
const inputText = await this.quickInputService.input({
|
|
74
|
+
prompt: core_1.nls.localizeByDefault('Enter JSON'),
|
|
75
|
+
value: await this.clipboardService.readText()
|
|
76
|
+
});
|
|
77
|
+
if (!inputText) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const { base, input1, input2, result, languageId } = Object.assign({
|
|
81
|
+
base: '',
|
|
82
|
+
input1: '',
|
|
83
|
+
input2: '',
|
|
84
|
+
result: '',
|
|
85
|
+
languageId: 'plaintext'
|
|
86
|
+
}, JSON.parse(inputText));
|
|
87
|
+
const extension = Array.from((_b = (_a = this.languageService.getLanguage(languageId)) === null || _a === void 0 ? void 0 : _a.extensions) !== null && _b !== void 0 ? _b : [''])[0];
|
|
88
|
+
const parentUri = new core_1.URI('merge-editor-dev://' + (0, core_1.generateUuid)());
|
|
89
|
+
const baseUri = parentUri.resolve('base' + extension);
|
|
90
|
+
const side1Uri = parentUri.resolve('side1' + extension);
|
|
91
|
+
const side2Uri = parentUri.resolve('side2' + extension);
|
|
92
|
+
const resultUri = parentUri.resolve('result' + extension);
|
|
93
|
+
const toDispose = new core_1.DisposableCollection();
|
|
94
|
+
try {
|
|
95
|
+
toDispose.push(this.inMemoryResources.add(baseUri, base));
|
|
96
|
+
toDispose.push(this.inMemoryResources.add(side1Uri, input1));
|
|
97
|
+
toDispose.push(this.inMemoryResources.add(side2Uri, input2));
|
|
98
|
+
toDispose.push(this.inMemoryResources.add(resultUri, result));
|
|
99
|
+
const uri = merge_editor_1.MergeEditorUri.encode({ baseUri, side1Uri, side2Uri, resultUri });
|
|
100
|
+
const options = {
|
|
101
|
+
widgetState: {
|
|
102
|
+
side1State: {
|
|
103
|
+
title: 'Left',
|
|
104
|
+
description: '(from JSON)'
|
|
105
|
+
},
|
|
106
|
+
side2State: {
|
|
107
|
+
title: 'Right',
|
|
108
|
+
description: '(from JSON)'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
await (0, browser_1.open)(this.openerService, uri, options);
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
toDispose.dispose();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
exports.MergeEditorDevContribution = MergeEditorDevContribution;
|
|
120
|
+
tslib_1.__decorate([
|
|
121
|
+
(0, inversify_1.inject)(browser_1.ApplicationShell),
|
|
122
|
+
tslib_1.__metadata("design:type", browser_1.ApplicationShell)
|
|
123
|
+
], MergeEditorDevContribution.prototype, "shell", void 0);
|
|
124
|
+
tslib_1.__decorate([
|
|
125
|
+
(0, inversify_1.inject)(clipboard_service_1.ClipboardService),
|
|
126
|
+
tslib_1.__metadata("design:type", Object)
|
|
127
|
+
], MergeEditorDevContribution.prototype, "clipboardService", void 0);
|
|
128
|
+
tslib_1.__decorate([
|
|
129
|
+
(0, inversify_1.inject)(core_1.MessageService),
|
|
130
|
+
tslib_1.__metadata("design:type", core_1.MessageService)
|
|
131
|
+
], MergeEditorDevContribution.prototype, "messageService", void 0);
|
|
132
|
+
tslib_1.__decorate([
|
|
133
|
+
(0, inversify_1.inject)(core_1.QuickInputService),
|
|
134
|
+
tslib_1.__metadata("design:type", Object)
|
|
135
|
+
], MergeEditorDevContribution.prototype, "quickInputService", void 0);
|
|
136
|
+
tslib_1.__decorate([
|
|
137
|
+
(0, inversify_1.inject)(language_service_1.LanguageService),
|
|
138
|
+
tslib_1.__metadata("design:type", language_service_1.LanguageService)
|
|
139
|
+
], MergeEditorDevContribution.prototype, "languageService", void 0);
|
|
140
|
+
tslib_1.__decorate([
|
|
141
|
+
(0, inversify_1.inject)(core_1.InMemoryResources),
|
|
142
|
+
tslib_1.__metadata("design:type", core_1.InMemoryResources)
|
|
143
|
+
], MergeEditorDevContribution.prototype, "inMemoryResources", void 0);
|
|
144
|
+
tslib_1.__decorate([
|
|
145
|
+
(0, inversify_1.inject)(browser_1.OpenerService),
|
|
146
|
+
tslib_1.__metadata("design:type", Object)
|
|
147
|
+
], MergeEditorDevContribution.prototype, "openerService", void 0);
|
|
148
|
+
exports.MergeEditorDevContribution = MergeEditorDevContribution = tslib_1.__decorate([
|
|
149
|
+
(0, inversify_1.injectable)()
|
|
150
|
+
], MergeEditorDevContribution);
|
|
151
|
+
//# sourceMappingURL=merge-editor-dev-contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-editor-dev-contribution.js","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor-dev-contribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import '../../../src/browser/style/merge-editor.css';
|
|
2
|
+
import { interfaces } from '@theia/core/shared/inversify';
|
|
3
|
+
import { DisposableCollection, URI } from '@theia/core';
|
|
4
|
+
import { EditorManager, EditorWidget } from '@theia/editor/lib/browser';
|
|
5
|
+
import { MergeEditor, MergeUris } from './merge-editor';
|
|
6
|
+
export declare function bindMergeEditor(bind: interfaces.Bind): void;
|
|
7
|
+
export declare class MergeEditorFactory {
|
|
8
|
+
protected readonly container: interfaces.Container;
|
|
9
|
+
protected readonly editorManager: EditorManager;
|
|
10
|
+
constructor(container: interfaces.Container, editorManager?: EditorManager);
|
|
11
|
+
createMergeEditor({ baseUri, side1Uri, side2Uri, resultUri }: MergeUris): Promise<MergeEditor>;
|
|
12
|
+
protected createEditorWidget(uri: URI, disposables: DisposableCollection): Promise<EditorWidget>;
|
|
13
|
+
protected createMergeEditorContainer({ baseEditorWidget, side1EditorWidget, side2EditorWidget, resultEditorWidget, options }: MergeEditorContainerProps): interfaces.Container;
|
|
14
|
+
}
|
|
15
|
+
export interface MergeEditorContainerProps {
|
|
16
|
+
baseEditorWidget: EditorWidget;
|
|
17
|
+
side1EditorWidget: EditorWidget;
|
|
18
|
+
side2EditorWidget: EditorWidget;
|
|
19
|
+
resultEditorWidget: EditorWidget;
|
|
20
|
+
options?: {
|
|
21
|
+
resetResult?: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=merge-editor-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-editor-module.d.ts","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor-module.ts"],"names":[],"mappings":"AAgBA,OAAO,6CAA6C,CAAC;AAErD,OAAO,EAAa,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAuB,oBAAoB,EAAoB,GAAG,EAAE,MAAM,aAAa,CAAC;AAI/F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMxE,OAAO,EAAE,WAAW,EAA+D,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIrH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAmB3D;AAED,qBAAa,kBAAkB;IAGvB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS;IAClD,SAAS,CAAC,QAAQ,CAAC,aAAa;gBADb,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,aAAa,gBAA+B;IAG7D,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;cAwBpF,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAYtG,SAAS,CAAC,0BAA0B,CAAC,EACjC,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACV,EAAE,yBAAyB,GAAG,UAAU,CAAC,SAAS;CAoBtD;AAED,MAAM,WAAW,yBAAyB;IACtC,gBAAgB,EAAE,YAAY,CAAC;IAC/B,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,kBAAkB,EAAE,YAAY,CAAC;IACjC,OAAO,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,CAAA;CACJ"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2025 1C-Soft LLC and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MergeEditorFactory = exports.bindMergeEditor = void 0;
|
|
19
|
+
require("../../../src/browser/style/merge-editor.css");
|
|
20
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
21
|
+
const core_1 = require("@theia/core");
|
|
22
|
+
const tab_bar_toolbar_1 = require("@theia/core/lib/browser/shell/tab-bar-toolbar");
|
|
23
|
+
const browser_1 = require("@theia/core/lib/browser");
|
|
24
|
+
const color_application_contribution_1 = require("@theia/core/lib/browser/color-application-contribution");
|
|
25
|
+
const browser_2 = require("@theia/editor/lib/browser");
|
|
26
|
+
const monaco_editor_1 = require("@theia/monaco/lib/browser/monaco-editor");
|
|
27
|
+
const merge_editor_model_1 = require("./model/merge-editor-model");
|
|
28
|
+
const merge_editor_panes_1 = require("./view/merge-editor-panes");
|
|
29
|
+
const diff_spacers_1 = require("./view/diff-spacers");
|
|
30
|
+
const merge_editor_view_zones_1 = require("./view/merge-editor-view-zones");
|
|
31
|
+
const merge_editor_1 = require("./merge-editor");
|
|
32
|
+
const merge_editor_contribution_1 = require("./merge-editor-contribution");
|
|
33
|
+
const merge_editor_dev_contribution_1 = require("./merge-editor-dev-contribution");
|
|
34
|
+
function bindMergeEditor(bind) {
|
|
35
|
+
bind(merge_editor_1.MergeEditorSettings).toSelf().inSingletonScope();
|
|
36
|
+
bind(diff_spacers_1.DiffSpacerService).toSelf().inSingletonScope();
|
|
37
|
+
bind(merge_editor_view_zones_1.MergeEditorViewZoneComputer).toSelf().inSingletonScope();
|
|
38
|
+
bind(MergeEditorFactory).toDynamicValue(ctx => new MergeEditorFactory(ctx.container)).inSingletonScope();
|
|
39
|
+
bind(browser_1.WidgetFactory).toDynamicValue(ctx => ({
|
|
40
|
+
id: merge_editor_1.MergeEditorOpenHandler.ID,
|
|
41
|
+
createWidget: (options) => ctx.container.get(MergeEditorFactory).createMergeEditor(merge_editor_1.MergeEditorUri.decode(new core_1.URI(options.uri)))
|
|
42
|
+
})).inSingletonScope();
|
|
43
|
+
bind(merge_editor_1.MergeEditorOpenHandler).toSelf().inSingletonScope();
|
|
44
|
+
bind(browser_1.OpenHandler).toService(merge_editor_1.MergeEditorOpenHandler);
|
|
45
|
+
bind(merge_editor_contribution_1.MergeEditorContribution).toSelf().inSingletonScope();
|
|
46
|
+
[browser_1.FrontendApplicationContribution, core_1.CommandContribution, core_1.MenuContribution, tab_bar_toolbar_1.TabBarToolbarContribution, browser_1.KeybindingContribution, color_application_contribution_1.ColorContribution].forEach(serviceIdentifier => bind(serviceIdentifier).toService(merge_editor_contribution_1.MergeEditorContribution));
|
|
47
|
+
bind(merge_editor_dev_contribution_1.MergeEditorDevContribution).toSelf().inSingletonScope();
|
|
48
|
+
bind(core_1.CommandContribution).toService(merge_editor_dev_contribution_1.MergeEditorDevContribution);
|
|
49
|
+
}
|
|
50
|
+
exports.bindMergeEditor = bindMergeEditor;
|
|
51
|
+
class MergeEditorFactory {
|
|
52
|
+
constructor(container, editorManager = container.get(browser_2.EditorManager)) {
|
|
53
|
+
this.container = container;
|
|
54
|
+
this.editorManager = editorManager;
|
|
55
|
+
}
|
|
56
|
+
async createMergeEditor({ baseUri, side1Uri, side2Uri, resultUri }) {
|
|
57
|
+
const toDisposeOnError = new core_1.DisposableCollection();
|
|
58
|
+
const createEditorWidget = (uri) => this.createEditorWidget(uri, toDisposeOnError);
|
|
59
|
+
try {
|
|
60
|
+
const [baseEditorWidget, side1EditorWidget, side2EditorWidget, resultEditorWidget] = await Promise.all([createEditorWidget(baseUri), createEditorWidget(side1Uri), createEditorWidget(side2Uri), createEditorWidget(resultUri)]);
|
|
61
|
+
const resultDocument = monaco_editor_1.MonacoEditor.get(resultEditorWidget).document;
|
|
62
|
+
const hasConflictMarkers = resultDocument.textEditorModel.getLinesContent().some(lineContent => lineContent.startsWith('<<<<<<<'));
|
|
63
|
+
return this.createMergeEditorContainer({
|
|
64
|
+
baseEditorWidget,
|
|
65
|
+
side1EditorWidget,
|
|
66
|
+
side2EditorWidget,
|
|
67
|
+
resultEditorWidget,
|
|
68
|
+
options: {
|
|
69
|
+
resetResult: hasConflictMarkers
|
|
70
|
+
}
|
|
71
|
+
}).get(merge_editor_1.MergeEditor);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
toDisposeOnError.dispose();
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async createEditorWidget(uri, disposables) {
|
|
79
|
+
const editorWidget = await this.editorManager.createByUri(uri);
|
|
80
|
+
disposables.push(editorWidget);
|
|
81
|
+
const editor = monaco_editor_1.MonacoEditor.get(editorWidget);
|
|
82
|
+
if (!editor) {
|
|
83
|
+
throw new Error('The merge editor only supports Monaco editors as its parts');
|
|
84
|
+
}
|
|
85
|
+
editor.getControl().updateOptions({ folding: false, codeLens: false, minimap: { enabled: false } });
|
|
86
|
+
editor.setShouldDisplayDirtyDiff(false);
|
|
87
|
+
return editorWidget;
|
|
88
|
+
}
|
|
89
|
+
createMergeEditorContainer({ baseEditorWidget, side1EditorWidget, side2EditorWidget, resultEditorWidget, options }) {
|
|
90
|
+
const child = new inversify_1.Container({ defaultScope: 'Singleton' });
|
|
91
|
+
child.parent = this.container;
|
|
92
|
+
const [baseEditor, side1Editor, side2Editor, resultEditor] = [baseEditorWidget, side1EditorWidget, side2EditorWidget, resultEditorWidget].map(editorWidget => monaco_editor_1.MonacoEditor.get(editorWidget));
|
|
93
|
+
child.bind(merge_editor_model_1.MergeEditorModelProps).toConstantValue({ baseEditor, side1Editor, side2Editor, resultEditor, options });
|
|
94
|
+
child.bind(merge_editor_model_1.MergeEditorModel).toSelf();
|
|
95
|
+
child.bind(merge_editor_panes_1.MergeEditorPaneHeader).toSelf().inTransientScope();
|
|
96
|
+
child.bind(merge_editor_panes_1.MergeEditorBasePane).toSelf();
|
|
97
|
+
child.bind(merge_editor_panes_1.MergeEditorSide1Pane).toSelf();
|
|
98
|
+
child.bind(merge_editor_panes_1.MergeEditorSide2Pane).toSelf();
|
|
99
|
+
child.bind(merge_editor_panes_1.MergeEditorResultPane).toSelf();
|
|
100
|
+
child.bind(browser_2.EditorWidget).toConstantValue(baseEditorWidget).whenInjectedInto(merge_editor_panes_1.MergeEditorBasePane);
|
|
101
|
+
child.bind(browser_2.EditorWidget).toConstantValue(side1EditorWidget).whenInjectedInto(merge_editor_panes_1.MergeEditorSide1Pane);
|
|
102
|
+
child.bind(browser_2.EditorWidget).toConstantValue(side2EditorWidget).whenInjectedInto(merge_editor_panes_1.MergeEditorSide2Pane);
|
|
103
|
+
child.bind(browser_2.EditorWidget).toConstantValue(resultEditorWidget).whenInjectedInto(merge_editor_panes_1.MergeEditorResultPane);
|
|
104
|
+
child.bind(merge_editor_1.MergeEditor).toSelf();
|
|
105
|
+
return child;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.MergeEditorFactory = MergeEditorFactory;
|
|
109
|
+
//# sourceMappingURL=merge-editor-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-editor-module.js","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Disposable, URI } from '@theia/core';
|
|
2
|
+
import { ApplicationShell, BaseWidget, LabelProvider, Message, Navigatable, NavigatableWidgetOpenHandler, Saveable, SaveableSource, SplitPanel, StatefulWidget, StorageService, Widget, WidgetOpenerOptions } from '@theia/core/lib/browser';
|
|
3
|
+
import { Observable } from '@theia/core/lib/common/observable';
|
|
4
|
+
import { Range } from '@theia/editor/lib/browser';
|
|
5
|
+
import { MergeRange } from './model/merge-range';
|
|
6
|
+
import { MergeEditorModel } from './model/merge-editor-model';
|
|
7
|
+
import { MergeEditorBasePane, MergeEditorPane, MergeEditorResultPane, MergeEditorSide1Pane, MergeEditorSide2Pane } from './view/merge-editor-panes';
|
|
8
|
+
import { MergeEditorViewZoneComputer } from './view/merge-editor-view-zones';
|
|
9
|
+
import { MergeEditorScrollSync } from './view/merge-editor-scroll-sync';
|
|
10
|
+
export interface MergeUris {
|
|
11
|
+
baseUri: URI;
|
|
12
|
+
side1Uri: URI;
|
|
13
|
+
side2Uri: URI;
|
|
14
|
+
resultUri: URI;
|
|
15
|
+
}
|
|
16
|
+
export declare namespace MergeEditorUri {
|
|
17
|
+
function isMergeEditorUri(uri: URI): boolean;
|
|
18
|
+
function encode({ baseUri, side1Uri, side2Uri, resultUri }: MergeUris): URI;
|
|
19
|
+
function decode(uri: URI): MergeUris;
|
|
20
|
+
}
|
|
21
|
+
export type MergeEditorLayoutKind = 'mixed' | 'columns';
|
|
22
|
+
export interface MergeEditorLayoutMode {
|
|
23
|
+
readonly kind: MergeEditorLayoutKind;
|
|
24
|
+
readonly showBase: boolean;
|
|
25
|
+
readonly showBaseAtTop: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare namespace MergeEditorLayoutMode {
|
|
28
|
+
const DEFAULT: MergeEditorLayoutMode;
|
|
29
|
+
}
|
|
30
|
+
export interface MergeEditorSideWidgetState {
|
|
31
|
+
title?: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
detail?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface MergeEditorWidgetState {
|
|
36
|
+
layoutMode?: MergeEditorLayoutMode;
|
|
37
|
+
side1State?: MergeEditorSideWidgetState;
|
|
38
|
+
side2State?: MergeEditorSideWidgetState;
|
|
39
|
+
}
|
|
40
|
+
export declare class MergeEditorSettings {
|
|
41
|
+
protected static LAYOUT_MODE: string;
|
|
42
|
+
protected readonly storageService: StorageService;
|
|
43
|
+
layoutMode: MergeEditorLayoutMode;
|
|
44
|
+
load(): Promise<void>;
|
|
45
|
+
save(): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
export declare class MergeEditor extends BaseWidget implements StatefulWidget, SaveableSource, Navigatable, ApplicationShell.TrackableWidgetProvider {
|
|
48
|
+
readonly model: MergeEditorModel;
|
|
49
|
+
readonly basePane: MergeEditorBasePane;
|
|
50
|
+
readonly side1Pane: MergeEditorSide1Pane;
|
|
51
|
+
readonly side2Pane: MergeEditorSide2Pane;
|
|
52
|
+
readonly resultPane: MergeEditorResultPane;
|
|
53
|
+
protected readonly viewZoneComputer: MergeEditorViewZoneComputer;
|
|
54
|
+
protected readonly settings: MergeEditorSettings;
|
|
55
|
+
protected readonly labelProvider: LabelProvider;
|
|
56
|
+
protected readonly visibilityObservable: Observable.Settable<boolean, void>;
|
|
57
|
+
protected readonly currentPaneObservable: Observable.Settable<MergeEditorPane | undefined, void>;
|
|
58
|
+
protected readonly layoutModeObservable: Observable.Settable<MergeEditorLayoutMode, void>;
|
|
59
|
+
protected readonly currentMergeRangeObservable: Observable<MergeRange | undefined, unknown>;
|
|
60
|
+
protected readonly selectionInBaseObservable: Observable<Range[] | undefined, unknown>;
|
|
61
|
+
protected verticalSplitPanel: SplitPanel;
|
|
62
|
+
protected horizontalSplitPanel: SplitPanel;
|
|
63
|
+
protected scrollSync: MergeEditorScrollSync;
|
|
64
|
+
protected init(): void;
|
|
65
|
+
protected createScrollSynchronizer(): MergeEditorScrollSync;
|
|
66
|
+
protected initCurrentPaneTracker(): void;
|
|
67
|
+
protected layoutInitialized: boolean;
|
|
68
|
+
protected ensureLayoutInitialized(): void;
|
|
69
|
+
protected doInitializeLayout(): void;
|
|
70
|
+
protected onLayoutInitialized(): void;
|
|
71
|
+
protected onResize(msg: Widget.ResizeMessage): void;
|
|
72
|
+
get isShown(): boolean;
|
|
73
|
+
get currentPane(): MergeEditorPane | undefined;
|
|
74
|
+
protected createCurrentMergeRangeObservable(): Observable<MergeRange | undefined>;
|
|
75
|
+
get currentMergeRange(): MergeRange | undefined;
|
|
76
|
+
protected createSelectionInBaseObservable(): Observable<Range[] | undefined>;
|
|
77
|
+
get selectionInBase(): Range[] | undefined;
|
|
78
|
+
get panes(): MergeEditorPane[];
|
|
79
|
+
get baseUri(): URI;
|
|
80
|
+
get side1Uri(): URI;
|
|
81
|
+
get side1Title(): string;
|
|
82
|
+
get side2Uri(): URI;
|
|
83
|
+
get side2Title(): string;
|
|
84
|
+
get resultUri(): URI;
|
|
85
|
+
storeState(): MergeEditorWidgetState;
|
|
86
|
+
restoreState(state: MergeEditorWidgetState): void;
|
|
87
|
+
get saveable(): Saveable;
|
|
88
|
+
getResourceUri(): URI | undefined;
|
|
89
|
+
createMoveToUri(resourceUri: URI): URI | undefined;
|
|
90
|
+
getTrackableWidgets(): Widget[];
|
|
91
|
+
goToFirstMergeRange(predicate?: (mergeRange: MergeRange) => boolean): void;
|
|
92
|
+
goToNextMergeRange(predicate?: (mergeRange: MergeRange) => boolean): void;
|
|
93
|
+
goToPreviousMergeRange(predicate?: (mergeRange: MergeRange) => boolean): void;
|
|
94
|
+
get layoutMode(): MergeEditorLayoutMode;
|
|
95
|
+
set layoutMode(value: MergeEditorLayoutMode);
|
|
96
|
+
get layoutKind(): MergeEditorLayoutKind;
|
|
97
|
+
set layoutKind(kind: MergeEditorLayoutKind);
|
|
98
|
+
get isShowingBase(): boolean;
|
|
99
|
+
get isShowingBaseAtTop(): boolean;
|
|
100
|
+
toggleShowBase(): void;
|
|
101
|
+
toggleShowBaseTop(): void;
|
|
102
|
+
toggleShowBaseCenter(): void;
|
|
103
|
+
get shouldAlignResult(): boolean;
|
|
104
|
+
get shouldAlignBase(): boolean;
|
|
105
|
+
protected applyLayoutMode(layoutMode: MergeEditorLayoutMode): void;
|
|
106
|
+
protected createViewZones(): Disposable;
|
|
107
|
+
protected onBeforeHide(msg: Message): void;
|
|
108
|
+
protected onAfterShow(msg: Message): void;
|
|
109
|
+
protected onActivateRequest(msg: Message): void;
|
|
110
|
+
}
|
|
111
|
+
export interface MergeEditorOpenerOptions extends WidgetOpenerOptions {
|
|
112
|
+
widgetState?: MergeEditorWidgetState;
|
|
113
|
+
}
|
|
114
|
+
export declare class MergeEditorOpenHandler extends NavigatableWidgetOpenHandler<MergeEditor> {
|
|
115
|
+
static readonly ID = "merge-editor-opener";
|
|
116
|
+
readonly id = "merge-editor-opener";
|
|
117
|
+
readonly label: string;
|
|
118
|
+
canHandle(uri: URI, options?: MergeEditorOpenerOptions): number;
|
|
119
|
+
open(uri: URI, options?: MergeEditorOpenerOptions): Promise<MergeEditor>;
|
|
120
|
+
protected getOrCreateWidget(uri: URI, options?: MergeEditorOpenerOptions): Promise<MergeEditor>;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=merge-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-editor.d.ts","sourceRoot":"","sources":["../../../src/browser/merge-editor/merge-editor.ts"],"names":[],"mappings":"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"}
|