@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common 17.2.1 → 18.0.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/package.json +2 -2
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/editing.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.d.ts +10 -24
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +12 -70
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.d.ts +10 -10
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +14 -11
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.d.ts +6 -6
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.d.ts +1 -1
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +1 -1
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.d.ts +3 -3
- package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +24 -24
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@codingame/monaco-vscode-210e86a9-a91b-5273-b05d-390c776dde1f-common",
|
3
|
-
"version": "
|
3
|
+
"version": "18.0.0",
|
4
4
|
"private": false,
|
5
5
|
"description": "VSCode public API plugged on the monaco editor - common package (chat, extensions, interactive, notebook, terminal, view-common)",
|
6
6
|
"keywords": [],
|
@@ -15,7 +15,7 @@
|
|
15
15
|
},
|
16
16
|
"type": "module",
|
17
17
|
"dependencies": {
|
18
|
-
"@codingame/monaco-vscode-api": "
|
18
|
+
"@codingame/monaco-vscode-api": "18.0.0"
|
19
19
|
},
|
20
20
|
"exports": {
|
21
21
|
".": {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
2
2
|
import { IIdentifiedSingleEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
|
3
|
-
import {
|
3
|
+
import { MergeEditorLineRange } from "./lineRange.js";
|
4
4
|
export declare class LineRangeEdit {
|
5
|
-
readonly range:
|
5
|
+
readonly range: MergeEditorLineRange;
|
6
6
|
readonly newLines: string[];
|
7
|
-
constructor(range:
|
7
|
+
constructor(range: MergeEditorLineRange, newLines: string[]);
|
8
8
|
equals(other: LineRangeEdit): boolean;
|
9
9
|
toEdits(modelLineCount: number): IIdentifiedSingleEditOperation[];
|
10
10
|
}
|
@@ -1,29 +1,15 @@
|
|
1
|
-
import { Comparator } from "@codingame/monaco-vscode-api/vscode/vs/base/common/arrays";
|
2
1
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
2
|
+
import { LineRange } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/lineRange";
|
3
3
|
import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
|
4
|
-
export declare class LineRange {
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
get isEmpty(): boolean;
|
14
|
-
touches(other: LineRange): boolean;
|
15
|
-
isAfter(range: LineRange): boolean;
|
16
|
-
isBefore(range: LineRange): boolean;
|
17
|
-
delta(lineDelta: number): LineRange;
|
18
|
-
toString(): string;
|
19
|
-
equals(originalRange: LineRange): boolean;
|
20
|
-
contains(lineNumber: number): boolean;
|
21
|
-
deltaEnd(delta: number): LineRange;
|
22
|
-
deltaStart(lineDelta: number): LineRange;
|
4
|
+
export declare class MergeEditorLineRange extends LineRange {
|
5
|
+
static fromLineNumbers(startLineNumber: number, endExclusiveLineNumber: number): MergeEditorLineRange;
|
6
|
+
static fromLength(startLineNumber: number, length: number): MergeEditorLineRange;
|
7
|
+
join(other: MergeEditorLineRange): MergeEditorLineRange;
|
8
|
+
isAfter(range: MergeEditorLineRange): boolean;
|
9
|
+
isBefore(range: MergeEditorLineRange): boolean;
|
10
|
+
delta(lineDelta: number): MergeEditorLineRange;
|
11
|
+
deltaEnd(delta: number): MergeEditorLineRange;
|
12
|
+
deltaStart(lineDelta: number): MergeEditorLineRange;
|
23
13
|
getLines(model: ITextModel): string[];
|
24
|
-
containsRange(range: LineRange): boolean;
|
25
|
-
toRange(): Range;
|
26
|
-
toInclusiveRange(): Range | undefined;
|
27
14
|
toInclusiveRangeOrEmpty(): Range;
|
28
|
-
intersects(lineRange: LineRange): boolean;
|
29
15
|
}
|
@@ -1,45 +1,17 @@
|
|
1
1
|
|
2
|
-
import { compareBy, numberComparator } from '@codingame/monaco-vscode-api/vscode/vs/base/common/arrays';
|
3
|
-
import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
4
2
|
import { Constants } from '@codingame/monaco-vscode-api/vscode/vs/base/common/uint';
|
5
3
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
4
|
+
import { LineRange } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/ranges/lineRange';
|
6
5
|
|
7
|
-
class LineRange {
|
8
|
-
static { this.compareByStart = compareBy(l => l.startLineNumber, numberComparator); }
|
9
|
-
static join(ranges) {
|
10
|
-
if (ranges.length === 0) {
|
11
|
-
return undefined;
|
12
|
-
}
|
13
|
-
let startLineNumber = Number.MAX_SAFE_INTEGER;
|
14
|
-
let endLineNumber = 0;
|
15
|
-
for (const range of ranges) {
|
16
|
-
startLineNumber = Math.min(startLineNumber, range.startLineNumber);
|
17
|
-
endLineNumber = Math.max(endLineNumber, range.startLineNumber + range.lineCount);
|
18
|
-
}
|
19
|
-
return ( new LineRange(startLineNumber, endLineNumber - startLineNumber));
|
20
|
-
}
|
6
|
+
class MergeEditorLineRange extends LineRange {
|
21
7
|
static fromLineNumbers(startLineNumber, endExclusiveLineNumber) {
|
22
|
-
return (
|
8
|
+
return MergeEditorLineRange.fromLength(startLineNumber, endExclusiveLineNumber - startLineNumber);
|
23
9
|
}
|
24
|
-
|
25
|
-
|
26
|
-
this.lineCount = lineCount;
|
27
|
-
if (lineCount < 0) {
|
28
|
-
throw ( new BugIndicatingError());
|
29
|
-
}
|
10
|
+
static fromLength(startLineNumber, length) {
|
11
|
+
return ( new MergeEditorLineRange(startLineNumber, startLineNumber + length));
|
30
12
|
}
|
31
13
|
join(other) {
|
32
|
-
return
|
33
|
-
}
|
34
|
-
get endLineNumberExclusive() {
|
35
|
-
return this.startLineNumber + this.lineCount;
|
36
|
-
}
|
37
|
-
get isEmpty() {
|
38
|
-
return this.lineCount === 0;
|
39
|
-
}
|
40
|
-
touches(other) {
|
41
|
-
return (this.endLineNumberExclusive >= other.startLineNumber &&
|
42
|
-
other.endLineNumberExclusive >= this.startLineNumber);
|
14
|
+
return MergeEditorLineRange.fromLineNumbers(Math.min(this.startLineNumber, other.startLineNumber), Math.max(this.endLineNumberExclusive, other.endLineNumberExclusive));
|
43
15
|
}
|
44
16
|
isAfter(range) {
|
45
17
|
return this.startLineNumber >= range.endLineNumberExclusive;
|
@@ -48,47 +20,21 @@ class LineRange {
|
|
48
20
|
return range.startLineNumber >= this.endLineNumberExclusive;
|
49
21
|
}
|
50
22
|
delta(lineDelta) {
|
51
|
-
return (
|
52
|
-
}
|
53
|
-
toString() {
|
54
|
-
return `[${this.startLineNumber},${this.endLineNumberExclusive})`;
|
55
|
-
}
|
56
|
-
equals(originalRange) {
|
57
|
-
return this.startLineNumber === originalRange.startLineNumber && this.lineCount === originalRange.lineCount;
|
58
|
-
}
|
59
|
-
contains(lineNumber) {
|
60
|
-
return this.startLineNumber <= lineNumber && lineNumber < this.endLineNumberExclusive;
|
23
|
+
return MergeEditorLineRange.fromLength(this.startLineNumber + lineDelta, this.length);
|
61
24
|
}
|
62
25
|
deltaEnd(delta) {
|
63
|
-
return (
|
26
|
+
return MergeEditorLineRange.fromLength(this.startLineNumber, this.length + delta);
|
64
27
|
}
|
65
28
|
deltaStart(lineDelta) {
|
66
|
-
return (
|
29
|
+
return MergeEditorLineRange.fromLength(this.startLineNumber + lineDelta, this.length - lineDelta);
|
67
30
|
}
|
68
31
|
getLines(model) {
|
69
|
-
const result = ( new Array(this.
|
70
|
-
for (let i = 0; i < this.
|
32
|
+
const result = ( new Array(this.length));
|
33
|
+
for (let i = 0; i < this.length; i++) {
|
71
34
|
result[i] = model.getLineContent(this.startLineNumber + i);
|
72
35
|
}
|
73
36
|
return result;
|
74
37
|
}
|
75
|
-
containsRange(range) {
|
76
|
-
return this.startLineNumber <= range.startLineNumber && range.endLineNumberExclusive <= this.endLineNumberExclusive;
|
77
|
-
}
|
78
|
-
toRange() {
|
79
|
-
return ( new Range(this.startLineNumber, 1, this.endLineNumberExclusive, 1));
|
80
|
-
}
|
81
|
-
toInclusiveRange() {
|
82
|
-
if (this.isEmpty) {
|
83
|
-
return undefined;
|
84
|
-
}
|
85
|
-
return ( new Range(
|
86
|
-
this.startLineNumber,
|
87
|
-
1,
|
88
|
-
this.endLineNumberExclusive - 1,
|
89
|
-
Constants.MAX_SAFE_SMALL_INTEGER
|
90
|
-
));
|
91
|
-
}
|
92
38
|
toInclusiveRangeOrEmpty() {
|
93
39
|
if (this.isEmpty) {
|
94
40
|
return ( new Range(this.startLineNumber, 1, this.startLineNumber, 1));
|
@@ -100,10 +46,6 @@ class LineRange {
|
|
100
46
|
Constants.MAX_SAFE_SMALL_INTEGER
|
101
47
|
));
|
102
48
|
}
|
103
|
-
intersects(lineRange) {
|
104
|
-
return this.startLineNumber <= lineRange.endLineNumberExclusive
|
105
|
-
&& lineRange.startLineNumber <= this.endLineNumberExclusive;
|
106
|
-
}
|
107
49
|
}
|
108
50
|
|
109
|
-
export {
|
51
|
+
export { MergeEditorLineRange };
|
@@ -2,13 +2,13 @@ import { Position } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/c
|
|
2
2
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
3
3
|
import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
|
4
4
|
import { LineRangeEdit } from "./editing.js";
|
5
|
-
import {
|
5
|
+
import { MergeEditorLineRange } from "./lineRange.js";
|
6
6
|
export declare class LineRangeMapping {
|
7
|
-
readonly inputRange:
|
8
|
-
readonly outputRange:
|
7
|
+
readonly inputRange: MergeEditorLineRange;
|
8
|
+
readonly outputRange: MergeEditorLineRange;
|
9
9
|
static join(mappings: readonly LineRangeMapping[]): LineRangeMapping | undefined;
|
10
|
-
constructor(inputRange:
|
11
|
-
extendInputRange(extendedInputRange:
|
10
|
+
constructor(inputRange: MergeEditorLineRange, outputRange: MergeEditorLineRange);
|
11
|
+
extendInputRange(extendedInputRange: MergeEditorLineRange): LineRangeMapping;
|
12
12
|
join(other: LineRangeMapping): LineRangeMapping;
|
13
13
|
get resultingDeltaFromOriginalToModified(): number;
|
14
14
|
toString(): string;
|
@@ -26,13 +26,13 @@ export declare class DocumentLineRangeMap {
|
|
26
26
|
reverse(): DocumentLineRangeMap;
|
27
27
|
}
|
28
28
|
export declare class MappingAlignment<T extends LineRangeMapping> {
|
29
|
-
readonly inputRange:
|
30
|
-
readonly output1Range:
|
29
|
+
readonly inputRange: MergeEditorLineRange;
|
30
|
+
readonly output1Range: MergeEditorLineRange;
|
31
31
|
readonly output1LineMappings: T[];
|
32
|
-
readonly output2Range:
|
32
|
+
readonly output2Range: MergeEditorLineRange;
|
33
33
|
readonly output2LineMappings: T[];
|
34
34
|
static compute<T extends LineRangeMapping>(fromInputToOutput1: readonly T[], fromInputToOutput2: readonly T[]): MappingAlignment<T>[];
|
35
|
-
constructor(inputRange:
|
35
|
+
constructor(inputRange: MergeEditorLineRange, output1Range: MergeEditorLineRange, output1LineMappings: T[], output2Range: MergeEditorLineRange, output2LineMappings: T[]);
|
36
36
|
toString(): string;
|
37
37
|
}
|
38
38
|
export declare class DetailedLineRangeMapping extends LineRangeMapping {
|
@@ -40,7 +40,7 @@ export declare class DetailedLineRangeMapping extends LineRangeMapping {
|
|
40
40
|
readonly outputTextModel: ITextModel;
|
41
41
|
static join(mappings: readonly DetailedLineRangeMapping[]): DetailedLineRangeMapping | undefined;
|
42
42
|
readonly rangeMappings: readonly RangeMapping[];
|
43
|
-
constructor(inputRange:
|
43
|
+
constructor(inputRange: MergeEditorLineRange, inputTextModel: ITextModel, outputRange: MergeEditorLineRange, outputTextModel: ITextModel, rangeMappings?: readonly RangeMapping[]);
|
44
44
|
addOutputLineDelta(delta: number): DetailedLineRangeMapping;
|
45
45
|
addInputLineDelta(delta: number): DetailedLineRangeMapping;
|
46
46
|
join(other: DetailedLineRangeMapping): DetailedLineRangeMapping;
|
@@ -5,7 +5,7 @@ import { assertFn, checkAdjacentItems } from '@codingame/monaco-vscode-api/vscod
|
|
5
5
|
import { BugIndicatingError } from '@codingame/monaco-vscode-api/vscode/vs/base/common/errors';
|
6
6
|
import { Range } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range';
|
7
7
|
import { LineRangeEdit } from './editing.js';
|
8
|
-
import {
|
8
|
+
import { MergeEditorLineRange } from './lineRange.js';
|
9
9
|
import { rangeIsBeforeOrTouching, rangeContainsPosition, lengthBetweenPositions, addLength } from './rangeUtils.js';
|
10
10
|
|
11
11
|
class LineRangeMapping {
|
@@ -22,10 +22,10 @@ class LineRangeMapping {
|
|
22
22
|
}
|
23
23
|
const startDelta = extendedInputRange.startLineNumber - this.inputRange.startLineNumber;
|
24
24
|
const endDelta = extendedInputRange.endLineNumberExclusive - this.inputRange.endLineNumberExclusive;
|
25
|
-
return ( new LineRangeMapping(
|
26
|
-
|
27
|
-
this.outputRange.
|
28
|
-
))
|
25
|
+
return ( new LineRangeMapping(
|
26
|
+
extendedInputRange,
|
27
|
+
MergeEditorLineRange.fromLength(this.outputRange.startLineNumber + startDelta, this.outputRange.length - startDelta + endDelta)
|
28
|
+
));
|
29
29
|
}
|
30
30
|
join(other) {
|
31
31
|
return ( new LineRangeMapping(
|
@@ -67,15 +67,18 @@ class DocumentLineRangeMap {
|
|
67
67
|
project(lineNumber) {
|
68
68
|
const lastBefore = findLast(this.lineRangeMappings, r => r.inputRange.startLineNumber <= lineNumber);
|
69
69
|
if (!lastBefore) {
|
70
|
-
return ( new LineRangeMapping(
|
70
|
+
return ( new LineRangeMapping(
|
71
|
+
MergeEditorLineRange.fromLength(lineNumber, 1),
|
72
|
+
MergeEditorLineRange.fromLength(lineNumber, 1)
|
73
|
+
));
|
71
74
|
}
|
72
75
|
if (lastBefore.inputRange.contains(lineNumber)) {
|
73
76
|
return lastBefore;
|
74
77
|
}
|
75
|
-
const containingRange = (
|
76
|
-
const mappedRange = (
|
78
|
+
const containingRange = MergeEditorLineRange.fromLength(lineNumber, 1);
|
79
|
+
const mappedRange = MergeEditorLineRange.fromLength(lineNumber +
|
77
80
|
lastBefore.outputRange.endLineNumberExclusive -
|
78
|
-
lastBefore.inputRange.endLineNumberExclusive, 1)
|
81
|
+
lastBefore.inputRange.endLineNumberExclusive, 1);
|
79
82
|
return ( new LineRangeMapping(containingRange, mappedRange));
|
80
83
|
}
|
81
84
|
get outputLineCount() {
|
@@ -110,7 +113,7 @@ class MappingAlignment {
|
|
110
113
|
let currentInputRange;
|
111
114
|
for (const diff of combinedDiffs) {
|
112
115
|
const range = diff.diff.inputRange;
|
113
|
-
if (currentInputRange && !currentInputRange.
|
116
|
+
if (currentInputRange && !currentInputRange.intersectsOrTouches(range)) {
|
114
117
|
pushAndReset(currentInputRange);
|
115
118
|
currentInputRange = undefined;
|
116
119
|
}
|
@@ -143,7 +146,7 @@ class DetailedLineRangeMapping extends LineRangeMapping {
|
|
143
146
|
super(inputRange, outputRange);
|
144
147
|
this.inputTextModel = inputTextModel;
|
145
148
|
this.outputTextModel = outputTextModel;
|
146
|
-
this.rangeMappings = rangeMappings || [( new RangeMapping(this.inputRange.
|
149
|
+
this.rangeMappings = rangeMappings || [( new RangeMapping(this.inputRange.toExclusiveRange(), this.outputRange.toExclusiveRange()))];
|
147
150
|
}
|
148
151
|
addOutputLineDelta(delta) {
|
149
152
|
return ( new DetailedLineRangeMapping(
|
@@ -1,22 +1,22 @@
|
|
1
1
|
import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
|
2
2
|
import { LineRangeEdit } from "./editing.js";
|
3
|
-
import {
|
3
|
+
import { MergeEditorLineRange } from "./lineRange.js";
|
4
4
|
import { DetailedLineRangeMapping } from "./mapping.js";
|
5
5
|
export declare class ModifiedBaseRange {
|
6
|
-
readonly baseRange:
|
6
|
+
readonly baseRange: MergeEditorLineRange;
|
7
7
|
readonly baseTextModel: ITextModel;
|
8
|
-
readonly input1Range:
|
8
|
+
readonly input1Range: MergeEditorLineRange;
|
9
9
|
readonly input1TextModel: ITextModel;
|
10
10
|
readonly input1Diffs: readonly DetailedLineRangeMapping[];
|
11
|
-
readonly input2Range:
|
11
|
+
readonly input2Range: MergeEditorLineRange;
|
12
12
|
readonly input2TextModel: ITextModel;
|
13
13
|
readonly input2Diffs: readonly DetailedLineRangeMapping[];
|
14
14
|
static fromDiffs(diffs1: readonly DetailedLineRangeMapping[], diffs2: readonly DetailedLineRangeMapping[], baseTextModel: ITextModel, input1TextModel: ITextModel, input2TextModel: ITextModel): ModifiedBaseRange[];
|
15
15
|
readonly input1CombinedDiff: DetailedLineRangeMapping | undefined;
|
16
16
|
readonly input2CombinedDiff: DetailedLineRangeMapping | undefined;
|
17
17
|
readonly isEqualChange: boolean;
|
18
|
-
constructor(baseRange:
|
19
|
-
getInputRange(inputNumber: 1 | 2):
|
18
|
+
constructor(baseRange: MergeEditorLineRange, baseTextModel: ITextModel, input1Range: MergeEditorLineRange, input1TextModel: ITextModel, input1Diffs: readonly DetailedLineRangeMapping[], input2Range: MergeEditorLineRange, input2TextModel: ITextModel, input2Diffs: readonly DetailedLineRangeMapping[]);
|
19
|
+
getInputRange(inputNumber: 1 | 2): MergeEditorLineRange;
|
20
20
|
getInputCombinedDiff(inputNumber: 1 | 2): DetailedLineRangeMapping | undefined;
|
21
21
|
getInputDiffs(inputNumber: 1 | 2): readonly DetailedLineRangeMapping[];
|
22
22
|
get isConflicting(): boolean;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { Position } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/position";
|
2
2
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
3
|
-
import { TextLength } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/textLength";
|
3
|
+
import { TextLength } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/text/textLength";
|
4
4
|
export declare function rangeContainsPosition(range: Range, position: Position): boolean;
|
5
5
|
export declare function lengthOfRange(range: Range): TextLength;
|
6
6
|
export declare function lengthBetweenPositions(position1: Position, position2: Position): TextLength;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
import { Position } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/position';
|
3
|
-
import { TextLength } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/textLength';
|
3
|
+
import { TextLength } from '@codingame/monaco-vscode-api/vscode/vs/editor/common/core/text/textLength';
|
4
4
|
|
5
5
|
function rangeContainsPosition(range, position) {
|
6
6
|
if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {
|
@@ -19,9 +19,9 @@ export declare class ActionsSource {
|
|
19
19
|
private getItemsInput;
|
20
20
|
readonly itemsInput1: IObservable<IContentWidgetAction[]>;
|
21
21
|
readonly itemsInput2: IObservable<IContentWidgetAction[]>;
|
22
|
-
readonly resultItems:
|
23
|
-
readonly isEmpty:
|
24
|
-
readonly inputIsEmpty:
|
22
|
+
readonly resultItems: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<IContentWidgetAction[], void>;
|
23
|
+
readonly isEmpty: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<boolean, void>;
|
24
|
+
readonly inputIsEmpty: import("@codingame/monaco-vscode-api/vscode/vs/base/common/observable").IObservableWithChange<boolean, void>;
|
25
25
|
}
|
26
26
|
export interface IContentWidgetAction {
|
27
27
|
text: string;
|
@@ -9,9 +9,9 @@ import { EditorOption, EDITOR_FONT_DEFAULTS } from '@codingame/monaco-vscode-api
|
|
9
9
|
import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
|
10
10
|
import { ModifiedBaseRangeStateKind, ModifiedBaseRangeState } from '../model/modifiedBaseRange.js';
|
11
11
|
import { FixedZoneWidget } from './fixedZoneWidget.js';
|
12
|
-
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/autorun';
|
13
|
-
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/derived';
|
14
|
-
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/
|
12
|
+
import { autorun } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/reactions/autorun';
|
13
|
+
import { derived } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/observables/derived';
|
14
|
+
import { transaction } from '@codingame/monaco-vscode-api/vscode/vs/base/common/observableInternal/transaction';
|
15
15
|
|
16
16
|
class ConflictActionsFactory extends Disposable {
|
17
17
|
constructor(_editor) {
|
@@ -83,15 +83,15 @@ class ActionsSource {
|
|
83
83
|
const result = [];
|
84
84
|
if (state.kind === ModifiedBaseRangeStateKind.unrecognized) {
|
85
85
|
result.push({
|
86
|
-
text: ( localize(
|
87
|
-
tooltip: ( localize(
|
86
|
+
text: ( localize(8084, "Manual Resolution")),
|
87
|
+
tooltip: ( localize(8085, "This conflict has been resolved manually.")),
|
88
88
|
});
|
89
89
|
}
|
90
90
|
else if (state.kind === ModifiedBaseRangeStateKind.base) {
|
91
91
|
result.push({
|
92
|
-
text: ( localize(
|
92
|
+
text: ( localize(8086, 'No Changes Accepted')),
|
93
93
|
tooltip: ( localize(
|
94
|
-
|
94
|
+
8087,
|
95
95
|
'The current resolution of this conflict equals the common ancestor of both the right and left changes.'
|
96
96
|
)),
|
97
97
|
});
|
@@ -113,20 +113,20 @@ class ActionsSource {
|
|
113
113
|
}
|
114
114
|
const stateToggles = [];
|
115
115
|
if (state.includesInput1) {
|
116
|
-
stateToggles.push(command(( localize(
|
116
|
+
stateToggles.push(command(( localize(8088, 'Remove {0}', model.input1.title)), async () => {
|
117
117
|
transaction((tx) => {
|
118
118
|
model.setState(modifiedBaseRange, state.withInputValue(1, false), true, tx);
|
119
119
|
model.telemetry.reportRemoveInvoked(1, state.includesInput(2));
|
120
120
|
});
|
121
|
-
}, ( localize(
|
121
|
+
}, ( localize(8089, 'Remove {0} from the result document.', model.input1.title))));
|
122
122
|
}
|
123
123
|
if (state.includesInput2) {
|
124
|
-
stateToggles.push(command(( localize(
|
124
|
+
stateToggles.push(command(( localize(8088, 'Remove {0}', model.input2.title)), async () => {
|
125
125
|
transaction((tx) => {
|
126
126
|
model.setState(modifiedBaseRange, state.withInputValue(2, false), true, tx);
|
127
127
|
model.telemetry.reportRemoveInvoked(2, state.includesInput(1));
|
128
128
|
});
|
129
|
-
}, ( localize(
|
129
|
+
}, ( localize(8089, 'Remove {0} from the result document.', model.input2.title))));
|
130
130
|
}
|
131
131
|
if (state.kind === ModifiedBaseRangeStateKind.both &&
|
132
132
|
state.firstInput === 2) {
|
@@ -134,13 +134,13 @@ class ActionsSource {
|
|
134
134
|
}
|
135
135
|
result.push(...stateToggles);
|
136
136
|
if (state.kind === ModifiedBaseRangeStateKind.unrecognized) {
|
137
|
-
result.push(command(( localize(
|
137
|
+
result.push(command(( localize(8090, 'Reset to base')), async () => {
|
138
138
|
transaction((tx) => {
|
139
139
|
model.setState(modifiedBaseRange, ModifiedBaseRangeState.base, true, tx);
|
140
140
|
model.telemetry.reportResetToBaseInvoked();
|
141
141
|
});
|
142
142
|
}, ( localize(
|
143
|
-
|
143
|
+
8091,
|
144
144
|
'Reset this conflict to the common ancestor of both the right and left changes.'
|
145
145
|
))));
|
146
146
|
}
|
@@ -172,16 +172,16 @@ class ActionsSource {
|
|
172
172
|
const otherInputNumber = inputNumber === 1 ? 2 : 1;
|
173
173
|
if (state.kind !== ModifiedBaseRangeStateKind.unrecognized && !state.isInputIncluded(inputNumber)) {
|
174
174
|
if (!state.isInputIncluded(otherInputNumber) || !this.viewModel.shouldUseAppendInsteadOfAccept.read(reader)) {
|
175
|
-
result.push(command(( localize(
|
175
|
+
result.push(command(( localize(8092, "Accept {0}", inputData.title)), async () => {
|
176
176
|
transaction((tx) => {
|
177
177
|
model.setState(modifiedBaseRange, state.withInputValue(inputNumber, true, false), inputNumber, tx);
|
178
178
|
model.telemetry.reportAcceptInvoked(inputNumber, state.includesInput(otherInputNumber));
|
179
179
|
});
|
180
|
-
}, ( localize(
|
180
|
+
}, ( localize(8093, "Accept {0} in the result document.", inputData.title))));
|
181
181
|
if (modifiedBaseRange.canBeCombined) {
|
182
182
|
const commandName = modifiedBaseRange.isOrderRelevant
|
183
|
-
? ( localize(
|
184
|
-
: ( localize(
|
183
|
+
? ( localize(8094, "Accept Combination ({0} First)", inputData.title))
|
184
|
+
: ( localize(8095, "Accept Combination"));
|
185
185
|
result.push(command(commandName, async () => {
|
186
186
|
transaction((tx) => {
|
187
187
|
model.setState(modifiedBaseRange, ModifiedBaseRangeState.base
|
@@ -190,36 +190,36 @@ class ActionsSource {
|
|
190
190
|
model.telemetry.reportSmartCombinationInvoked(state.includesInput(otherInputNumber));
|
191
191
|
});
|
192
192
|
}, ( localize(
|
193
|
-
|
193
|
+
8096,
|
194
194
|
"Accept an automatic combination of both sides in the result document."
|
195
195
|
))));
|
196
196
|
}
|
197
197
|
}
|
198
198
|
else {
|
199
|
-
result.push(command(( localize(
|
199
|
+
result.push(command(( localize(8097, "Append {0}", inputData.title)), async () => {
|
200
200
|
transaction((tx) => {
|
201
201
|
model.setState(modifiedBaseRange, state.withInputValue(inputNumber, true, false), inputNumber, tx);
|
202
202
|
model.telemetry.reportAcceptInvoked(inputNumber, state.includesInput(otherInputNumber));
|
203
203
|
});
|
204
|
-
}, ( localize(
|
204
|
+
}, ( localize(8098, "Append {0} to the result document.", inputData.title))));
|
205
205
|
if (modifiedBaseRange.canBeCombined) {
|
206
|
-
result.push(command(( localize(
|
206
|
+
result.push(command(( localize(8099, "Accept Combination", inputData.title)), async () => {
|
207
207
|
transaction((tx) => {
|
208
208
|
model.setState(modifiedBaseRange, state.withInputValue(inputNumber, true, true), inputNumber, tx);
|
209
209
|
model.telemetry.reportSmartCombinationInvoked(state.includesInput(otherInputNumber));
|
210
210
|
});
|
211
211
|
}, ( localize(
|
212
|
-
|
212
|
+
8096,
|
213
213
|
"Accept an automatic combination of both sides in the result document."
|
214
214
|
))));
|
215
215
|
}
|
216
216
|
}
|
217
217
|
if (!model.isInputHandled(modifiedBaseRange, inputNumber).read(reader)) {
|
218
|
-
result.push(command(( localize(
|
218
|
+
result.push(command(( localize(8100, 'Ignore')), async () => {
|
219
219
|
transaction((tx) => {
|
220
220
|
model.setInputHandled(modifiedBaseRange, inputNumber, true, tx);
|
221
221
|
});
|
222
|
-
}, ( localize(
|
222
|
+
}, ( localize(8101, "Don't take this side of the conflict."))));
|
223
223
|
}
|
224
224
|
}
|
225
225
|
return result;
|