@theia/scm 1.67.0-next.56 → 1.67.0-next.59
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 +21 -0
- package/lib/browser/decorations/scm-decorations-service.d.ts.map +1 -0
- package/lib/browser/decorations/scm-decorations-service.js +134 -0
- package/lib/browser/decorations/scm-decorations-service.js.map +1 -0
- package/lib/browser/decorations/scm-navigator-decorator.d.ts +26 -0
- package/lib/browser/decorations/scm-navigator-decorator.d.ts.map +1 -0
- package/lib/browser/decorations/scm-navigator-decorator.js +122 -0
- package/lib/browser/decorations/scm-navigator-decorator.js.map +1 -0
- package/lib/browser/dirty-diff/content-lines.d.ts +15 -0
- package/lib/browser/dirty-diff/content-lines.d.ts.map +1 -0
- package/lib/browser/dirty-diff/content-lines.js +114 -0
- package/lib/browser/dirty-diff/content-lines.js.map +1 -0
- package/lib/browser/dirty-diff/content-lines.spec.d.ts +2 -0
- package/lib/browser/dirty-diff/content-lines.spec.d.ts.map +1 -0
- package/lib/browser/dirty-diff/content-lines.spec.js +40 -0
- package/lib/browser/dirty-diff/content-lines.spec.js.map +1 -0
- package/lib/browser/dirty-diff/diff-computer.d.ts +39 -0
- package/lib/browser/dirty-diff/diff-computer.d.ts.map +1 -0
- package/lib/browser/dirty-diff/diff-computer.js +167 -0
- package/lib/browser/dirty-diff/diff-computer.js.map +1 -0
- package/lib/browser/dirty-diff/diff-computer.spec.d.ts +2 -0
- package/lib/browser/dirty-diff/diff-computer.spec.d.ts.map +1 -0
- package/lib/browser/dirty-diff/diff-computer.spec.js +384 -0
- package/lib/browser/dirty-diff/diff-computer.spec.js.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts +17 -0
- package/lib/browser/dirty-diff/dirty-diff-decorator.d.ts.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-decorator.js +101 -0
- package/lib/browser/dirty-diff/dirty-diff-decorator.js.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-module.d.ts +4 -0
- package/lib/browser/dirty-diff/dirty-diff-module.d.ts.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-module.js +34 -0
- package/lib/browser/dirty-diff/dirty-diff-module.js.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts +49 -0
- package/lib/browser/dirty-diff/dirty-diff-navigator.d.ts.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-navigator.js +295 -0
- package/lib/browser/dirty-diff/dirty-diff-navigator.js.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-widget.d.ts +50 -0
- package/lib/browser/dirty-diff/dirty-diff-widget.d.ts.map +1 -0
- package/lib/browser/dirty-diff/dirty-diff-widget.js +357 -0
- package/lib/browser/dirty-diff/dirty-diff-widget.js.map +1 -0
- 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-amend-component.d.ts +124 -0
- package/lib/browser/scm-amend-component.d.ts.map +1 -0
- package/lib/browser/scm-amend-component.js +464 -0
- package/lib/browser/scm-amend-component.js.map +1 -0
- package/lib/browser/scm-amend-widget.d.ts +21 -0
- package/lib/browser/scm-amend-widget.d.ts.map +1 -0
- package/lib/browser/scm-amend-widget.js +91 -0
- package/lib/browser/scm-amend-widget.js.map +1 -0
- package/lib/browser/scm-avatar-service.d.ts +4 -0
- package/lib/browser/scm-avatar-service.d.ts.map +1 -0
- package/lib/browser/scm-avatar-service.js +32 -0
- package/lib/browser/scm-avatar-service.js.map +1 -0
- package/lib/browser/scm-colors.d.ts +8 -0
- package/lib/browser/scm-colors.d.ts.map +1 -0
- package/lib/browser/scm-colors.js +27 -0
- package/lib/browser/scm-colors.js.map +1 -0
- package/lib/browser/scm-commit-widget.d.ts +53 -0
- package/lib/browser/scm-commit-widget.d.ts.map +1 -0
- package/lib/browser/scm-commit-widget.js +188 -0
- package/lib/browser/scm-commit-widget.js.map +1 -0
- package/lib/browser/scm-context-key-service.d.ts +13 -0
- package/lib/browser/scm-context-key-service.d.ts.map +1 -0
- package/lib/browser/scm-context-key-service.js +55 -0
- package/lib/browser/scm-context-key-service.js.map +1 -0
- package/lib/browser/scm-contribution.d.ts +98 -0
- package/lib/browser/scm-contribution.d.ts.map +1 -0
- package/lib/browser/scm-contribution.js +480 -0
- package/lib/browser/scm-contribution.js.map +1 -0
- package/lib/browser/scm-frontend-module.d.ts +7 -0
- package/lib/browser/scm-frontend-module.d.ts.map +1 -0
- package/lib/browser/scm-frontend-module.js +129 -0
- package/lib/browser/scm-frontend-module.js.map +1 -0
- package/lib/browser/scm-groups-tree-model.d.ts +15 -0
- package/lib/browser/scm-groups-tree-model.d.ts.map +1 -0
- package/lib/browser/scm-groups-tree-model.js +90 -0
- package/lib/browser/scm-groups-tree-model.js.map +1 -0
- package/lib/browser/scm-input.d.ts +54 -0
- package/lib/browser/scm-input.d.ts.map +1 -0
- package/lib/browser/scm-input.js +128 -0
- package/lib/browser/scm-input.js.map +1 -0
- package/lib/browser/scm-layout-migrations.d.ts +10 -0
- package/lib/browser/scm-layout-migrations.d.ts.map +1 -0
- package/lib/browser/scm-layout-migrations.js +75 -0
- package/lib/browser/scm-layout-migrations.js.map +1 -0
- package/lib/browser/scm-no-repository-widget.d.ts +9 -0
- package/lib/browser/scm-no-repository-widget.d.ts.map +1 -0
- package/lib/browser/scm-no-repository-widget.js +42 -0
- package/lib/browser/scm-no-repository-widget.js.map +1 -0
- package/lib/browser/scm-provider.d.ts +60 -0
- package/lib/browser/scm-provider.d.ts.map +1 -0
- package/lib/browser/scm-provider.js +20 -0
- package/lib/browser/scm-provider.js.map +1 -0
- package/lib/browser/scm-quick-open-service.d.ts +12 -0
- package/lib/browser/scm-quick-open-service.d.ts.map +1 -0
- package/lib/browser/scm-quick-open-service.js +66 -0
- package/lib/browser/scm-quick-open-service.js.map +1 -0
- package/lib/browser/scm-repository.d.ts +18 -0
- package/lib/browser/scm-repository.d.ts.map +1 -0
- package/lib/browser/scm-repository.js +42 -0
- package/lib/browser/scm-repository.js.map +1 -0
- package/lib/browser/scm-service.d.ts +27 -0
- package/lib/browser/scm-service.d.ts.map +1 -0
- package/lib/browser/scm-service.js +101 -0
- package/lib/browser/scm-service.js.map +1 -0
- package/lib/browser/scm-tree-label-provider.d.ts +8 -0
- package/lib/browser/scm-tree-label-provider.d.ts.map +1 -0
- package/lib/browser/scm-tree-label-provider.js +50 -0
- package/lib/browser/scm-tree-label-provider.js.map +1 -0
- package/lib/browser/scm-tree-model.d.ts +76 -0
- package/lib/browser/scm-tree-model.d.ts.map +1 -0
- package/lib/browser/scm-tree-model.js +349 -0
- package/lib/browser/scm-tree-model.js.map +1 -0
- package/lib/browser/scm-tree-widget.d.ts +206 -0
- package/lib/browser/scm-tree-widget.d.ts.map +1 -0
- package/lib/browser/scm-tree-widget.js +677 -0
- package/lib/browser/scm-tree-widget.js.map +1 -0
- package/lib/browser/scm-widget.d.ts +42 -0
- package/lib/browser/scm-widget.d.ts.map +1 -0
- package/lib/browser/scm-widget.js +220 -0
- package/lib/browser/scm-widget.js.map +1 -0
- package/lib/common/scm-preferences.d.ts +12 -0
- package/lib/common/scm-preferences.d.ts.map +1 -0
- package/lib/common/scm-preferences.js +51 -0
- package/lib/common/scm-preferences.js.map +1 -0
- package/lib/node/scm-backend-module.d.ts +4 -0
- package/lib/node/scm-backend-module.d.ts.map +1 -0
- package/lib/node/scm-backend-module.js +23 -0
- package/lib/node/scm-backend-module.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,507 @@
|
|
|
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
|
+
/*---------------------------------------------------------------------------------------------
|
|
18
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
19
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
20
|
+
*--------------------------------------------------------------------------------------------*/
|
|
21
|
+
// copied and modified from https://github.com/microsoft/vscode/blob/1.96.3/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.ts,
|
|
22
|
+
// https://github.com/microsoft/vscode/blob/1.96.3/src/vs/workbench/contrib/mergeEditor/browser/view/viewModel.ts
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.MergeRangeData = exports.MergeEditorModel = exports.MergeEditorModelProps = void 0;
|
|
25
|
+
const tslib_1 = require("tslib");
|
|
26
|
+
const inversify_1 = require("@theia/core/shared/inversify");
|
|
27
|
+
const core_1 = require("@theia/core");
|
|
28
|
+
const observable_1 = require("@theia/core/lib/common/observable");
|
|
29
|
+
const diff_1 = require("@theia/core/lib/common/diff");
|
|
30
|
+
const monaco_to_protocol_converter_1 = require("@theia/monaco/lib/browser/monaco-to-protocol-converter");
|
|
31
|
+
const merge_range_1 = require("./merge-range");
|
|
32
|
+
const range_mapping_1 = require("./range-mapping");
|
|
33
|
+
const live_diff_1 = require("./live-diff");
|
|
34
|
+
const line_range_1 = require("./line-range");
|
|
35
|
+
const range_editing_1 = require("./range-editing");
|
|
36
|
+
exports.MergeEditorModelProps = Symbol('MergeEditorModelProps');
|
|
37
|
+
let MergeEditorModel = class MergeEditorModel {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
40
|
+
this.shouldRecomputeHandledState = true;
|
|
41
|
+
this.mergeRangesObservable = observable_1.DerivedObservable.create(() => this.computeMergeRanges());
|
|
42
|
+
this.mergeRangesDataObservable = observable_1.DerivedObservable.create(() => new Map(this.mergeRanges.map(mergeRange => [mergeRange, this.newMergeRangeData()])));
|
|
43
|
+
// #region Line Range Mapping
|
|
44
|
+
this.side1ToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.computeSideToResultDiff(this.side1Changes, this.resultChanges)));
|
|
45
|
+
this.resultToSide1LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.side1ToResultLineRangeMap.reverse());
|
|
46
|
+
this.side2ToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.computeSideToResultDiff(this.side2Changes, this.resultChanges)));
|
|
47
|
+
this.resultToSide2LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.side2ToResultLineRangeMap.reverse());
|
|
48
|
+
this.baseToSide1LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.side1Changes));
|
|
49
|
+
this.side1ToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide1LineRangeMap.reverse());
|
|
50
|
+
this.baseToSide2LineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.side2Changes));
|
|
51
|
+
this.side2ToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide2LineRangeMap.reverse());
|
|
52
|
+
this.baseToResultLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentLineRangeMap(this.resultChanges));
|
|
53
|
+
this.resultToBaseLineRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToResultLineRangeMap.reverse());
|
|
54
|
+
// #endregion
|
|
55
|
+
// #region Range Mapping
|
|
56
|
+
this.baseToSide1RangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.side1Changes.flatMap(change => change.rangeMappings)));
|
|
57
|
+
this.side1ToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide1RangeMap.reverse());
|
|
58
|
+
this.baseToSide2RangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.side2Changes.flatMap(change => change.rangeMappings)));
|
|
59
|
+
this.side2ToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToSide2RangeMap.reverse());
|
|
60
|
+
this.baseToResultRangeMapObservable = observable_1.DerivedObservable.create(() => this.newDocumentRangeMap(this.resultChanges.flatMap(change => change.rangeMappings)));
|
|
61
|
+
this.resultToBaseRangeMapObservable = observable_1.DerivedObservable.create(() => this.baseToResultRangeMap.reverse());
|
|
62
|
+
// #endregion
|
|
63
|
+
this.diffComputingStateObservable = observable_1.DerivedObservable.create(() => this.getDiffComputingState(this.side1LiveDiff, this.side2LiveDiff, this.resultLiveDiff));
|
|
64
|
+
this.diffComputingStateForSidesObservable = observable_1.DerivedObservable.create(() => this.getDiffComputingState(this.side1LiveDiff, this.side2LiveDiff));
|
|
65
|
+
this.isUpToDateObservable = observable_1.DerivedObservable.create(() => this.diffComputingStateObservable.get() === 1 /* DiffComputingState.UpToDate */);
|
|
66
|
+
this.unhandledMergeRangesCountObservable = observable_1.DerivedObservable.create(() => {
|
|
67
|
+
let result = 0;
|
|
68
|
+
const mergeRangesData = this.mergeRangesDataObservable.get();
|
|
69
|
+
for (const mergeRangeData of mergeRangesData.values()) {
|
|
70
|
+
if (!mergeRangeData.isHandledObservable.get()) {
|
|
71
|
+
result++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return result;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
get mergeRanges() {
|
|
78
|
+
return this.mergeRangesObservable.get();
|
|
79
|
+
}
|
|
80
|
+
get side1ToResultLineRangeMap() {
|
|
81
|
+
return this.side1ToResultLineRangeMapObservable.get();
|
|
82
|
+
}
|
|
83
|
+
get resultToSide1LineRangeMap() {
|
|
84
|
+
return this.resultToSide1LineRangeMapObservable.get();
|
|
85
|
+
}
|
|
86
|
+
get side2ToResultLineRangeMap() {
|
|
87
|
+
return this.side2ToResultLineRangeMapObservable.get();
|
|
88
|
+
}
|
|
89
|
+
get resultToSide2LineRangeMap() {
|
|
90
|
+
return this.resultToSide2LineRangeMapObservable.get();
|
|
91
|
+
}
|
|
92
|
+
get baseToSide1LineRangeMap() {
|
|
93
|
+
return this.baseToSide1LineRangeMapObservable.get();
|
|
94
|
+
}
|
|
95
|
+
get side1ToBaseLineRangeMap() {
|
|
96
|
+
return this.side1ToBaseLineRangeMapObservable.get();
|
|
97
|
+
}
|
|
98
|
+
get baseToSide2LineRangeMap() {
|
|
99
|
+
return this.baseToSide2LineRangeMapObservable.get();
|
|
100
|
+
}
|
|
101
|
+
get side2ToBaseLineRangeMap() {
|
|
102
|
+
return this.side2ToBaseLineRangeMapObservable.get();
|
|
103
|
+
}
|
|
104
|
+
get baseToResultLineRangeMap() {
|
|
105
|
+
return this.baseToResultLineRangeMapObservable.get();
|
|
106
|
+
}
|
|
107
|
+
get resultToBaseLineRangeMap() {
|
|
108
|
+
return this.resultToBaseLineRangeMapObservable.get();
|
|
109
|
+
}
|
|
110
|
+
get baseToSide1RangeMap() {
|
|
111
|
+
return this.baseToSide1RangeMapObservable.get();
|
|
112
|
+
}
|
|
113
|
+
get side1ToBaseRangeMap() {
|
|
114
|
+
return this.side1ToBaseRangeMapObservable.get();
|
|
115
|
+
}
|
|
116
|
+
get baseToSide2RangeMap() {
|
|
117
|
+
return this.baseToSide2RangeMapObservable.get();
|
|
118
|
+
}
|
|
119
|
+
get side2ToBaseRangeMap() {
|
|
120
|
+
return this.side2ToBaseRangeMapObservable.get();
|
|
121
|
+
}
|
|
122
|
+
get baseToResultRangeMap() {
|
|
123
|
+
return this.baseToResultRangeMapObservable.get();
|
|
124
|
+
}
|
|
125
|
+
get resultToBaseRangeMap() {
|
|
126
|
+
return this.resultToBaseRangeMapObservable.get();
|
|
127
|
+
}
|
|
128
|
+
get unhandledMergeRangesCount() {
|
|
129
|
+
return this.unhandledMergeRangesCountObservable.get();
|
|
130
|
+
}
|
|
131
|
+
get onInitialized() {
|
|
132
|
+
return this._onInitialized;
|
|
133
|
+
}
|
|
134
|
+
get baseDocument() {
|
|
135
|
+
return this.props.baseEditor.document;
|
|
136
|
+
}
|
|
137
|
+
get side1Document() {
|
|
138
|
+
return this.props.side1Editor.document;
|
|
139
|
+
}
|
|
140
|
+
get side2Document() {
|
|
141
|
+
return this.props.side2Editor.document;
|
|
142
|
+
}
|
|
143
|
+
get resultDocument() {
|
|
144
|
+
return this.props.resultEditor.document;
|
|
145
|
+
}
|
|
146
|
+
get resultEditor() {
|
|
147
|
+
return this.props.resultEditor;
|
|
148
|
+
}
|
|
149
|
+
get side1Changes() {
|
|
150
|
+
return this.side1LiveDiff.changes;
|
|
151
|
+
}
|
|
152
|
+
get side2Changes() {
|
|
153
|
+
return this.side2LiveDiff.changes;
|
|
154
|
+
}
|
|
155
|
+
get resultChanges() {
|
|
156
|
+
return this.resultLiveDiff.changes;
|
|
157
|
+
}
|
|
158
|
+
init() {
|
|
159
|
+
this.toDispose.push(this.side1LiveDiff = this.newLiveDiff(this.baseDocument, this.side1Document));
|
|
160
|
+
this.toDispose.push(this.side2LiveDiff = this.newLiveDiff(this.baseDocument, this.side2Document));
|
|
161
|
+
this.toDispose.push(this.resultLiveDiff = this.newLiveDiff(this.baseDocument, this.resultDocument));
|
|
162
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.mergeRangesDataObservable));
|
|
163
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToResultLineRangeMapObservable));
|
|
164
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.resultToSide1LineRangeMapObservable));
|
|
165
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToResultLineRangeMapObservable));
|
|
166
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.resultToSide2LineRangeMapObservable));
|
|
167
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide1LineRangeMapObservable));
|
|
168
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToBaseLineRangeMapObservable));
|
|
169
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide2LineRangeMapObservable));
|
|
170
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToBaseLineRangeMapObservable));
|
|
171
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToResultLineRangeMapObservable));
|
|
172
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.resultToBaseLineRangeMapObservable));
|
|
173
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide1RangeMapObservable));
|
|
174
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side1ToBaseRangeMapObservable));
|
|
175
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToSide2RangeMapObservable));
|
|
176
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.side2ToBaseRangeMapObservable));
|
|
177
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.baseToResultRangeMapObservable));
|
|
178
|
+
this.toDispose.push(observable_1.Observable.keepObserved(this.resultToBaseRangeMapObservable));
|
|
179
|
+
const initializePromise = this.doInit();
|
|
180
|
+
this._onInitialized = observable_1.ObservableUtils.waitForState(this.isUpToDateObservable).then(() => initializePromise);
|
|
181
|
+
initializePromise.then(() => {
|
|
182
|
+
this.toDispose.push(observable_1.Autorun.create(() => {
|
|
183
|
+
if (!this.isUpToDateObservable.get()) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
observable_1.Observable.update(() => {
|
|
187
|
+
const mergeRangesData = this.mergeRangesDataObservable.get();
|
|
188
|
+
for (const [mergeRange, mergeRangeData] of mergeRangesData) {
|
|
189
|
+
const state = this.computeMergeRangeStateFromResult(mergeRange);
|
|
190
|
+
mergeRangeData.resultStateObservable.set(state);
|
|
191
|
+
if (this.shouldRecomputeHandledState) {
|
|
192
|
+
mergeRangeData.isHandledObservable.set(state !== 'Base');
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
this.shouldRecomputeHandledState = false;
|
|
196
|
+
});
|
|
197
|
+
}, {
|
|
198
|
+
willHandleChange: ctx => {
|
|
199
|
+
if (ctx.isChangeOf(this.mergeRangesDataObservable)) {
|
|
200
|
+
this.shouldRecomputeHandledState = true;
|
|
201
|
+
}
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
}));
|
|
205
|
+
const attachedHistory = new AttachedHistory(this.resultDocument);
|
|
206
|
+
this.toDispose.push(attachedHistory);
|
|
207
|
+
this.toDispose.push(this.resultDocument.textEditorModel.onDidChangeContent(event => {
|
|
208
|
+
if (event.isRedoing || event.isUndoing) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
// Mark merge ranges affected by content changes as handled.
|
|
212
|
+
const mergeRanges = [];
|
|
213
|
+
for (const change of event.changes) {
|
|
214
|
+
const { start, end } = this.translateResultRangeToBase(this.m2p.asRange(change.range));
|
|
215
|
+
const affectedMergeRanges = this.findMergeRanges(new line_range_1.LineRange(start.line, end.line - start.line));
|
|
216
|
+
for (const mergeRange of affectedMergeRanges) {
|
|
217
|
+
if (!this.isMergeRangeHandled(mergeRange)) {
|
|
218
|
+
mergeRanges.push(mergeRange);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
if (mergeRanges.length === 0) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const markMergeRangesAsHandled = (handled) => {
|
|
226
|
+
observable_1.Observable.update(() => {
|
|
227
|
+
const mergeRangesData = this.mergeRangesDataObservable.get();
|
|
228
|
+
for (const mergeRange of mergeRanges) {
|
|
229
|
+
const mergeRangeData = mergeRangesData.get(mergeRange);
|
|
230
|
+
if (mergeRangeData) {
|
|
231
|
+
mergeRangeData.isHandledObservable.set(handled);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
const element = {
|
|
237
|
+
redo: () => {
|
|
238
|
+
markMergeRangesAsHandled(true);
|
|
239
|
+
},
|
|
240
|
+
undo: () => {
|
|
241
|
+
markMergeRangesAsHandled(false);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
attachedHistory.pushAttachedHistoryElement(element);
|
|
245
|
+
element.redo();
|
|
246
|
+
}));
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
computeMergeRangeStateFromResult(mergeRange) {
|
|
250
|
+
const resultRange = this.getLineRangeInResult(mergeRange);
|
|
251
|
+
const existingLines = resultRange.getLines(this.resultDocument);
|
|
252
|
+
const states = [
|
|
253
|
+
'Base',
|
|
254
|
+
'Side1',
|
|
255
|
+
'Side2',
|
|
256
|
+
'Side1Side2Smart',
|
|
257
|
+
'Side2Side1Smart',
|
|
258
|
+
'Side1Side2',
|
|
259
|
+
'Side2Side1'
|
|
260
|
+
];
|
|
261
|
+
for (const state of states) {
|
|
262
|
+
const edit = mergeRange.getBaseRangeEdit(state);
|
|
263
|
+
if (core_1.ArrayUtils.equals(edit.newLines, existingLines)) {
|
|
264
|
+
return state;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return 'Unrecognized';
|
|
268
|
+
}
|
|
269
|
+
async doInit() {
|
|
270
|
+
var _a;
|
|
271
|
+
if ((_a = this.props.options) === null || _a === void 0 ? void 0 : _a.resetResult) {
|
|
272
|
+
await this.reset();
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
dispose() {
|
|
276
|
+
this.toDispose.dispose();
|
|
277
|
+
}
|
|
278
|
+
isDisposed() {
|
|
279
|
+
return this.toDispose.disposed;
|
|
280
|
+
}
|
|
281
|
+
async reset() {
|
|
282
|
+
await observable_1.ObservableUtils.waitForState(this.diffComputingStateForSidesObservable, state => state === 1 /* DiffComputingState.UpToDate */);
|
|
283
|
+
this.shouldRecomputeHandledState = true;
|
|
284
|
+
this.resultDocument.textEditorModel.setValue(this.computeAutoMergedResult());
|
|
285
|
+
}
|
|
286
|
+
computeAutoMergedResult() {
|
|
287
|
+
const baseLines = this.baseDocument.textEditorModel.getLinesContent();
|
|
288
|
+
const side1Lines = this.side1Document.textEditorModel.getLinesContent();
|
|
289
|
+
const side2Lines = this.side2Document.textEditorModel.getLinesContent();
|
|
290
|
+
const resultLines = [];
|
|
291
|
+
function appendLinesToResult(documentLines, lineRange) {
|
|
292
|
+
for (let i = lineRange.startLineNumber; i < lineRange.endLineNumberExclusive; i++) {
|
|
293
|
+
resultLines.push(documentLines[i]);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
let baseStartLineNumber = 0;
|
|
297
|
+
for (const mergeRange of this.mergeRanges) {
|
|
298
|
+
appendLinesToResult(baseLines, line_range_1.LineRange.fromLineNumbers(baseStartLineNumber, mergeRange.baseRange.startLineNumber));
|
|
299
|
+
if (mergeRange.side1Changes.length === 0) {
|
|
300
|
+
appendLinesToResult(side2Lines, mergeRange.side2Range);
|
|
301
|
+
}
|
|
302
|
+
else if (mergeRange.side2Changes.length === 0) {
|
|
303
|
+
appendLinesToResult(side1Lines, mergeRange.side1Range);
|
|
304
|
+
}
|
|
305
|
+
else if (mergeRange.isEqualChange) {
|
|
306
|
+
appendLinesToResult(side1Lines, mergeRange.side1Range);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
appendLinesToResult(baseLines, mergeRange.baseRange);
|
|
310
|
+
}
|
|
311
|
+
baseStartLineNumber = mergeRange.baseRange.endLineNumberExclusive;
|
|
312
|
+
}
|
|
313
|
+
appendLinesToResult(baseLines, line_range_1.LineRange.fromLineNumbers(baseStartLineNumber, baseLines.length));
|
|
314
|
+
return resultLines.join(this.resultDocument.textEditorModel.getEOL());
|
|
315
|
+
}
|
|
316
|
+
computeMergeRanges() {
|
|
317
|
+
return merge_range_1.MergeRange.computeMergeRanges(this.side1Changes, this.side2Changes, this.baseDocument, this.side1Document, this.side2Document);
|
|
318
|
+
}
|
|
319
|
+
hasMergeRange(mergeRange) {
|
|
320
|
+
return this.mergeRangesDataObservable.get().has(mergeRange);
|
|
321
|
+
}
|
|
322
|
+
getMergeRangeData(mergeRange) {
|
|
323
|
+
const mergeRangeData = this.mergeRangesDataObservable.get().get(mergeRange);
|
|
324
|
+
if (!mergeRangeData) {
|
|
325
|
+
throw new Error('Unknown merge range');
|
|
326
|
+
}
|
|
327
|
+
return mergeRangeData;
|
|
328
|
+
}
|
|
329
|
+
getMergeRangeResultState(mergeRange) {
|
|
330
|
+
return this.getMergeRangeData(mergeRange).resultStateObservable.get();
|
|
331
|
+
}
|
|
332
|
+
applyMergeRangeAcceptedState(mergeRange, state) {
|
|
333
|
+
if (!this.isUpToDateObservable.get()) {
|
|
334
|
+
throw new Error('Cannot apply merge range accepted state while updating');
|
|
335
|
+
}
|
|
336
|
+
if (state !== 'Base' && this.getMergeRangeResultState(mergeRange) === 'Unrecognized') {
|
|
337
|
+
throw new Error('Cannot apply merge range accepted state to an unrecognized result state');
|
|
338
|
+
}
|
|
339
|
+
const { originalRange: baseRange, modifiedRange: resultRange } = this.getResultLineRangeMapping(mergeRange);
|
|
340
|
+
let newLines;
|
|
341
|
+
if (state === 'Base') {
|
|
342
|
+
newLines = baseRange.getLines(this.baseDocument);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
if (!baseRange.equals(mergeRange.baseRange)) {
|
|
346
|
+
throw new Error('Assertion error');
|
|
347
|
+
}
|
|
348
|
+
newLines = mergeRange.getBaseRangeEdit(state).newLines;
|
|
349
|
+
}
|
|
350
|
+
const resultEdit = new range_editing_1.LineRangeEdit(resultRange, newLines);
|
|
351
|
+
const editOperation = resultEdit.toRangeEdit(this.resultDocument.lineCount).toMonacoEdit();
|
|
352
|
+
const cursorState = this.resultEditor.getControl().getSelections();
|
|
353
|
+
this.resultDocument.textEditorModel.pushStackElement();
|
|
354
|
+
this.resultDocument.textEditorModel.pushEditOperations(cursorState, [editOperation], () => cursorState);
|
|
355
|
+
this.resultDocument.textEditorModel.pushStackElement();
|
|
356
|
+
}
|
|
357
|
+
isMergeRangeHandled(mergeRange) {
|
|
358
|
+
return this.getMergeRangeData(mergeRange).isHandledObservable.get();
|
|
359
|
+
}
|
|
360
|
+
getLineRangeInResult(mergeRange) {
|
|
361
|
+
return this.getResultLineRangeMapping(mergeRange).modifiedRange;
|
|
362
|
+
}
|
|
363
|
+
getResultLineRangeMapping(mergeRange) {
|
|
364
|
+
const projectLine = (lineNumber) => {
|
|
365
|
+
let offset = 0;
|
|
366
|
+
const changes = this.resultChanges;
|
|
367
|
+
for (const change of changes) {
|
|
368
|
+
const { originalRange } = change;
|
|
369
|
+
if (originalRange.containsLine(lineNumber) || originalRange.endLineNumberExclusive === lineNumber) {
|
|
370
|
+
return change;
|
|
371
|
+
}
|
|
372
|
+
else if (originalRange.endLineNumberExclusive < lineNumber) {
|
|
373
|
+
offset = change.modifiedRange.endLineNumberExclusive - originalRange.endLineNumberExclusive;
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
return lineNumber + offset;
|
|
380
|
+
};
|
|
381
|
+
let startBase = mergeRange.baseRange.startLineNumber;
|
|
382
|
+
let startResult = projectLine(startBase);
|
|
383
|
+
if (typeof startResult !== 'number') {
|
|
384
|
+
startBase = startResult.originalRange.startLineNumber;
|
|
385
|
+
startResult = startResult.modifiedRange.startLineNumber;
|
|
386
|
+
}
|
|
387
|
+
let endExclusiveBase = mergeRange.baseRange.endLineNumberExclusive;
|
|
388
|
+
let endExclusiveResult = projectLine(endExclusiveBase);
|
|
389
|
+
if (typeof endExclusiveResult !== 'number') {
|
|
390
|
+
endExclusiveBase = endExclusiveResult.originalRange.endLineNumberExclusive;
|
|
391
|
+
endExclusiveResult = endExclusiveResult.modifiedRange.endLineNumberExclusive;
|
|
392
|
+
}
|
|
393
|
+
return new range_mapping_1.LineRangeMapping(line_range_1.LineRange.fromLineNumbers(startBase, endExclusiveBase), line_range_1.LineRange.fromLineNumbers(startResult, endExclusiveResult));
|
|
394
|
+
}
|
|
395
|
+
translateBaseRangeToSide(range, side) {
|
|
396
|
+
const rangeMap = side === 1 ? this.baseToSide1RangeMap : this.baseToSide2RangeMap;
|
|
397
|
+
return rangeMap.projectRange(range).modifiedRange;
|
|
398
|
+
}
|
|
399
|
+
translateSideRangeToBase(range, side) {
|
|
400
|
+
const rangeMap = side === 1 ? this.side1ToBaseRangeMap : this.side2ToBaseRangeMap;
|
|
401
|
+
return rangeMap.projectRange(range).modifiedRange;
|
|
402
|
+
}
|
|
403
|
+
translateBaseRangeToResult(range) {
|
|
404
|
+
return this.baseToResultRangeMap.projectRange(range).modifiedRange;
|
|
405
|
+
}
|
|
406
|
+
translateResultRangeToBase(range) {
|
|
407
|
+
return this.resultToBaseRangeMap.projectRange(range).modifiedRange;
|
|
408
|
+
}
|
|
409
|
+
findMergeRanges(baseRange) {
|
|
410
|
+
return this.mergeRanges.filter(mergeRange => mergeRange.baseRange.touches(baseRange));
|
|
411
|
+
}
|
|
412
|
+
computeSideToResultDiff(sideChanges, resultChanges) {
|
|
413
|
+
return range_mapping_1.DocumentLineRangeMap.betweenModifiedSides(sideChanges, resultChanges).lineRangeMappings;
|
|
414
|
+
}
|
|
415
|
+
newMergeRangeData() {
|
|
416
|
+
return new MergeRangeData();
|
|
417
|
+
}
|
|
418
|
+
newLiveDiff(originalDocument, modifiedDocument) {
|
|
419
|
+
return new live_diff_1.LiveDiff(originalDocument, modifiedDocument, this.diffComputer);
|
|
420
|
+
}
|
|
421
|
+
newDocumentLineRangeMap(lineRangeMappings) {
|
|
422
|
+
return new range_mapping_1.DocumentLineRangeMap(lineRangeMappings);
|
|
423
|
+
}
|
|
424
|
+
newDocumentRangeMap(rangeMappings) {
|
|
425
|
+
return new range_mapping_1.DocumentRangeMap(rangeMappings);
|
|
426
|
+
}
|
|
427
|
+
getDiffComputingState(...liveDiffs) {
|
|
428
|
+
const liveDiffStates = liveDiffs.map(liveDiff => liveDiff.state);
|
|
429
|
+
if (liveDiffStates.some(state => state === 0 /* LiveDiffState.Initializing */)) {
|
|
430
|
+
return 0 /* DiffComputingState.Initializing */;
|
|
431
|
+
}
|
|
432
|
+
if (liveDiffStates.some(state => state === 2 /* LiveDiffState.Updating */)) {
|
|
433
|
+
return 2 /* DiffComputingState.Updating */;
|
|
434
|
+
}
|
|
435
|
+
return 1 /* DiffComputingState.UpToDate */;
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
exports.MergeEditorModel = MergeEditorModel;
|
|
439
|
+
tslib_1.__decorate([
|
|
440
|
+
(0, inversify_1.inject)(exports.MergeEditorModelProps),
|
|
441
|
+
tslib_1.__metadata("design:type", Object)
|
|
442
|
+
], MergeEditorModel.prototype, "props", void 0);
|
|
443
|
+
tslib_1.__decorate([
|
|
444
|
+
(0, inversify_1.inject)(diff_1.DiffComputer),
|
|
445
|
+
tslib_1.__metadata("design:type", Object)
|
|
446
|
+
], MergeEditorModel.prototype, "diffComputer", void 0);
|
|
447
|
+
tslib_1.__decorate([
|
|
448
|
+
(0, inversify_1.inject)(monaco_to_protocol_converter_1.MonacoToProtocolConverter),
|
|
449
|
+
tslib_1.__metadata("design:type", monaco_to_protocol_converter_1.MonacoToProtocolConverter)
|
|
450
|
+
], MergeEditorModel.prototype, "m2p", void 0);
|
|
451
|
+
tslib_1.__decorate([
|
|
452
|
+
(0, inversify_1.postConstruct)(),
|
|
453
|
+
tslib_1.__metadata("design:type", Function),
|
|
454
|
+
tslib_1.__metadata("design:paramtypes", []),
|
|
455
|
+
tslib_1.__metadata("design:returntype", void 0)
|
|
456
|
+
], MergeEditorModel.prototype, "init", null);
|
|
457
|
+
exports.MergeEditorModel = MergeEditorModel = tslib_1.__decorate([
|
|
458
|
+
(0, inversify_1.injectable)()
|
|
459
|
+
], MergeEditorModel);
|
|
460
|
+
class MergeRangeData {
|
|
461
|
+
constructor() {
|
|
462
|
+
this.resultStateObservable = observable_1.SettableObservable.create('Base');
|
|
463
|
+
this.isHandledObservable = observable_1.SettableObservable.create(false);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
exports.MergeRangeData = MergeRangeData;
|
|
467
|
+
class AttachedHistory {
|
|
468
|
+
constructor(model) {
|
|
469
|
+
this.model = model;
|
|
470
|
+
this.toDispose = new core_1.DisposableCollection();
|
|
471
|
+
this.attachedHistory = [];
|
|
472
|
+
let previousAltId = this.model.textEditorModel.getAlternativeVersionId();
|
|
473
|
+
this.toDispose.push(model.textEditorModel.onDidChangeContent(event => {
|
|
474
|
+
const currentAltId = model.textEditorModel.getAlternativeVersionId();
|
|
475
|
+
if (event.isRedoing) {
|
|
476
|
+
for (const item of this.attachedHistory) {
|
|
477
|
+
if (previousAltId < item.altId && item.altId <= currentAltId) {
|
|
478
|
+
item.element.redo();
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
else if (event.isUndoing) {
|
|
483
|
+
for (let i = this.attachedHistory.length - 1; i >= 0; i--) {
|
|
484
|
+
const item = this.attachedHistory[i];
|
|
485
|
+
if (currentAltId < item.altId && item.altId <= previousAltId) {
|
|
486
|
+
item.element.undo();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
else {
|
|
491
|
+
// The user destroyed the redo stack by performing a non redo/undo operation.
|
|
492
|
+
while (this.attachedHistory.length > 0
|
|
493
|
+
&& this.attachedHistory[this.attachedHistory.length - 1].altId > previousAltId) {
|
|
494
|
+
this.attachedHistory.pop();
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
previousAltId = currentAltId;
|
|
498
|
+
}));
|
|
499
|
+
}
|
|
500
|
+
dispose() {
|
|
501
|
+
this.toDispose.dispose();
|
|
502
|
+
}
|
|
503
|
+
pushAttachedHistoryElement(element) {
|
|
504
|
+
this.attachedHistory.push({ altId: this.model.textEditorModel.getAlternativeVersionId(), element });
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
//# sourceMappingURL=merge-editor-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-editor-model.js","sourceRoot":"","sources":["../../../../src/browser/merge-editor/model/merge-editor-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TextEditorDocument } from '@theia/editor/lib/browser/editor';
|
|
2
|
+
import { DetailedLineRangeMapping } from './range-mapping';
|
|
3
|
+
import { LineRange } from './line-range';
|
|
4
|
+
import { LineRangeEdit, RangeEdit } from './range-editing';
|
|
5
|
+
/**
|
|
6
|
+
* Describes modifications in side 1 and side 2 for a specific range in base.
|
|
7
|
+
*/
|
|
8
|
+
export declare class MergeRange {
|
|
9
|
+
readonly baseRange: LineRange;
|
|
10
|
+
readonly baseDocument: TextEditorDocument;
|
|
11
|
+
readonly side1Range: LineRange;
|
|
12
|
+
readonly side1Changes: readonly DetailedLineRangeMapping[];
|
|
13
|
+
readonly side1Document: TextEditorDocument;
|
|
14
|
+
readonly side2Range: LineRange;
|
|
15
|
+
readonly side2Changes: readonly DetailedLineRangeMapping[];
|
|
16
|
+
readonly side2Document: TextEditorDocument;
|
|
17
|
+
static computeMergeRanges(side1Diff: readonly DetailedLineRangeMapping[], side2Diff: readonly DetailedLineRangeMapping[], baseDocument: TextEditorDocument, side1Document: TextEditorDocument, side2Document: TextEditorDocument): MergeRange[];
|
|
18
|
+
readonly side1CombinedChange: DetailedLineRangeMapping | undefined;
|
|
19
|
+
readonly side2CombinedChange: DetailedLineRangeMapping | undefined;
|
|
20
|
+
readonly isEqualChange: boolean;
|
|
21
|
+
constructor(baseRange: LineRange, baseDocument: TextEditorDocument, side1Range: LineRange, side1Changes: readonly DetailedLineRangeMapping[], side1Document: TextEditorDocument, side2Range: LineRange, side2Changes: readonly DetailedLineRangeMapping[], side2Document: TextEditorDocument);
|
|
22
|
+
getModifiedRange(side: MergeSide): LineRange;
|
|
23
|
+
getCombinedChange(side: MergeSide): DetailedLineRangeMapping | undefined;
|
|
24
|
+
getChanges(side: MergeSide): readonly DetailedLineRangeMapping[];
|
|
25
|
+
get isConflicting(): boolean;
|
|
26
|
+
canBeSmartCombined(firstSide: MergeSide): boolean;
|
|
27
|
+
get isSmartCombinationOrderRelevant(): boolean;
|
|
28
|
+
getBaseRangeEdit(state: MergeRangeAcceptedState): LineRangeEdit;
|
|
29
|
+
protected smartCombinationEdit1?: {
|
|
30
|
+
value: LineRangeEdit | undefined;
|
|
31
|
+
};
|
|
32
|
+
protected smartCombinationEdit2?: {
|
|
33
|
+
value: LineRangeEdit | undefined;
|
|
34
|
+
};
|
|
35
|
+
protected smartCombineChanges(firstSide: MergeSide): LineRangeEdit | undefined;
|
|
36
|
+
protected editsToLineRangeEdit(range: LineRange, sortedEdits: RangeEdit[], document: TextEditorDocument): LineRangeEdit | undefined;
|
|
37
|
+
protected dumbCombinationEdit1?: LineRangeEdit;
|
|
38
|
+
protected dumbCombinationEdit2?: LineRangeEdit;
|
|
39
|
+
protected dumbCombineChanges(firstSide: MergeSide): LineRangeEdit;
|
|
40
|
+
}
|
|
41
|
+
export type MergeSide = 1 | 2;
|
|
42
|
+
export type MergeRangeAcceptedState = 'Base' | 'Side1' | 'Side2' | 'Side1Side2' | 'Side2Side1' | 'Side1Side2Smart' | 'Side2Side1Smart';
|
|
43
|
+
export declare namespace MergeRangeAcceptedState {
|
|
44
|
+
function addSide(state: MergeRangeAcceptedState, side: MergeSide, options?: {
|
|
45
|
+
smartCombination?: boolean;
|
|
46
|
+
}): MergeRangeAcceptedState;
|
|
47
|
+
function removeSide(state: MergeRangeAcceptedState, side: MergeSide): MergeRangeAcceptedState;
|
|
48
|
+
}
|
|
49
|
+
export type MergeRangeResultState = MergeRangeAcceptedState | 'Unrecognized';
|
|
50
|
+
//# sourceMappingURL=merge-range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-range.d.ts","sourceRoot":"","sources":["../../../../src/browser/merge-editor/model/merge-range.ts"],"names":[],"mappings":"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"}
|