@eclipse-glsp/server 1.1.0-RC05 → 1.1.0-next.44aae0c.44
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/common/command/command-stack.d.ts +7 -6
- package/lib/common/command/command-stack.d.ts.map +1 -1
- package/lib/common/command/command-stack.js +6 -6
- package/lib/common/command/command-stack.js.map +1 -1
- package/lib/common/command/command-stack.spec.js +31 -31
- package/lib/common/command/command-stack.spec.js.map +1 -1
- package/lib/common/command/command.d.ts +7 -6
- package/lib/common/command/command.d.ts.map +1 -1
- package/lib/common/command/command.js +19 -15
- package/lib/common/command/command.js.map +1 -1
- package/lib/common/command/command.spec.js +8 -8
- package/lib/common/command/command.spec.js.map +1 -1
- package/lib/common/command/recording-command.d.ts +8 -8
- package/lib/common/command/recording-command.d.ts.map +1 -1
- package/lib/common/command/recording-command.js +4 -4
- package/lib/common/command/recording-command.js.map +1 -1
- package/lib/common/command/recording-command.spec.js +8 -8
- package/lib/common/command/recording-command.spec.js.map +1 -1
- package/lib/common/command/undo-redo-action-handler.d.ts +2 -2
- package/lib/common/command/undo-redo-action-handler.d.ts.map +1 -1
- package/lib/common/command/undo-redo-action-handler.js +4 -4
- package/lib/common/command/undo-redo-action-handler.js.map +1 -1
- package/lib/common/operations/operation-action-handler.d.ts +1 -1
- package/lib/common/operations/operation-action-handler.d.ts.map +1 -1
- package/lib/common/operations/operation-action-handler.js +3 -3
- package/lib/common/operations/operation-action-handler.js.map +1 -1
- package/lib/common/test/mock-util.d.ts +7 -1
- package/lib/common/test/mock-util.d.ts.map +1 -1
- package/lib/common/test/mock-util.js +23 -1
- package/lib/common/test/mock-util.js.map +1 -1
- package/package.json +4 -4
- package/src/common/command/command-stack.spec.ts +32 -32
- package/src/common/command/command-stack.ts +10 -9
- package/src/common/command/command.spec.ts +9 -10
- package/src/common/command/command.ts +23 -19
- package/src/common/command/recording-command.spec.ts +8 -8
- package/src/common/command/recording-command.ts +8 -8
- package/src/common/command/undo-redo-action-handler.ts +4 -4
- package/src/common/operations/operation-action-handler.ts +3 -3
- package/src/common/test/mock-util.ts +21 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MaybePromise } from '..';
|
|
1
2
|
import { Logger } from '../utils/logger';
|
|
2
3
|
import { Command } from './command';
|
|
3
4
|
export declare const CommandStack: unique symbol;
|
|
@@ -13,11 +14,11 @@ export interface CommandStack {
|
|
|
13
14
|
* Clears any redoable commands not yet redone, adds the command to the stack and then invokes {@link Command.execute}.
|
|
14
15
|
* @param command the command to execute.
|
|
15
16
|
*/
|
|
16
|
-
execute(command: Command): void
|
|
17
|
+
execute(command: Command): MaybePromise<void>;
|
|
17
18
|
/**
|
|
18
19
|
* Removes the topmost (i.e. last executed) command from the stack and invokes {@link Command.undo}.
|
|
19
20
|
*/
|
|
20
|
-
undo(): void
|
|
21
|
+
undo(): MaybePromise<void>;
|
|
21
22
|
/**
|
|
22
23
|
* Returns `true` if the top command on the stack can be undone.
|
|
23
24
|
*/
|
|
@@ -25,7 +26,7 @@ export interface CommandStack {
|
|
|
25
26
|
/**
|
|
26
27
|
* Re-adds the last undo command on top of the stack and invokes {@link Command.redo}
|
|
27
28
|
*/
|
|
28
|
-
redo(): void
|
|
29
|
+
redo(): MaybePromise<void>;
|
|
29
30
|
/**
|
|
30
31
|
* Returns `true` if there are redoable commands in the stack.
|
|
31
32
|
*/
|
|
@@ -54,10 +55,10 @@ export declare class DefaultCommandStack implements CommandStack {
|
|
|
54
55
|
* The current position within the command list when {@link DefaultCommandStack.saveIsDone} is called.
|
|
55
56
|
*/
|
|
56
57
|
protected saveIndex: number;
|
|
57
|
-
execute(command: Command): void
|
|
58
|
-
undo(): void
|
|
58
|
+
execute(command: Command): Promise<void>;
|
|
59
|
+
undo(): Promise<void>;
|
|
59
60
|
canUndo(): boolean;
|
|
60
|
-
redo(): void
|
|
61
|
+
redo(): Promise<void>;
|
|
61
62
|
canRedo(): boolean;
|
|
62
63
|
get isDirty(): boolean;
|
|
63
64
|
saveIsDone(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-stack.d.ts","sourceRoot":"","sources":["../../../src/common/command/command-stack.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"command-stack.d.ts","sourceRoot":"","sources":["../../../src/common/command/command-stack.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,eAAO,MAAM,YAAY,eAAyB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IACzB;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;OAEG;IACH,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;OAEG;IACH,UAAU,IAAI,IAAI,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACjB;AAED,qBACa,mBAAoB,YAAW,YAAY;IAEpD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAEnC;;OAEG;IACH,SAAS,CAAC,GAAG,SAAM;IAEnB;;OAEG;IACH,SAAS,CAAC,SAAS,SAAM;IAEnB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,IAAI,OAAO;IAMZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,IAAI,OAAO;IAIlB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,UAAU,IAAI,IAAI;IAIlB,KAAK,IAAI,IAAI;IAMb,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK;CAM3C"}
|
|
@@ -41,9 +41,9 @@ let DefaultCommandStack = class DefaultCommandStack {
|
|
|
41
41
|
*/
|
|
42
42
|
this.saveIndex = -1;
|
|
43
43
|
}
|
|
44
|
-
execute(command) {
|
|
44
|
+
async execute(command) {
|
|
45
45
|
try {
|
|
46
|
-
command.execute();
|
|
46
|
+
await command.execute();
|
|
47
47
|
}
|
|
48
48
|
catch (error) {
|
|
49
49
|
this.handleError(error);
|
|
@@ -58,11 +58,11 @@ let DefaultCommandStack = class DefaultCommandStack {
|
|
|
58
58
|
this.saveIndex = -2;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
undo() {
|
|
61
|
+
async undo() {
|
|
62
62
|
if (this.canUndo()) {
|
|
63
63
|
const command = this.commands[this.top--];
|
|
64
64
|
try {
|
|
65
|
-
command.undo();
|
|
65
|
+
await command.undo();
|
|
66
66
|
}
|
|
67
67
|
catch (error) {
|
|
68
68
|
this.handleError(error);
|
|
@@ -74,11 +74,11 @@ let DefaultCommandStack = class DefaultCommandStack {
|
|
|
74
74
|
? command_1.Command.canUndo(this.commands[this.top])
|
|
75
75
|
: false;
|
|
76
76
|
}
|
|
77
|
-
redo() {
|
|
77
|
+
async redo() {
|
|
78
78
|
if (this.canRedo()) {
|
|
79
79
|
const command = this.commands[++this.top];
|
|
80
80
|
try {
|
|
81
|
-
command.redo();
|
|
81
|
+
await command.redo();
|
|
82
82
|
}
|
|
83
83
|
catch (error) {
|
|
84
84
|
this.handleError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-stack.js","sourceRoot":"","sources":["../../../src/common/command/command-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,yCAA+C;
|
|
1
|
+
{"version":3,"file":"command-stack.js","sourceRoot":"","sources":["../../../src/common/command/command-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,142 +36,142 @@ describe('test DefaultCommandStack', () => {
|
|
|
36
36
|
commandStack = container.resolve(command_stack_1.DefaultCommandStack);
|
|
37
37
|
});
|
|
38
38
|
describe('execute', () => {
|
|
39
|
-
it('should execute the given command and become dirty', () => {
|
|
39
|
+
it('should execute the given command and become dirty', async () => {
|
|
40
40
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
41
|
-
commandStack.execute(command1);
|
|
41
|
+
await commandStack.execute(command1);
|
|
42
42
|
(0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
|
|
43
43
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
44
44
|
});
|
|
45
|
-
it('should execute the given commands in order and become dirty', () => {
|
|
45
|
+
it('should execute the given commands in order and become dirty', async () => {
|
|
46
46
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
47
|
-
commandStack.execute(command1);
|
|
48
|
-
commandStack.execute(command2);
|
|
47
|
+
await commandStack.execute(command1);
|
|
48
|
+
await commandStack.execute(command2);
|
|
49
49
|
(0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
|
|
50
50
|
(0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
|
|
51
51
|
(0, chai_1.expect)(command2.execute.calledAfter(command1.execute)).to.be.true;
|
|
52
52
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
53
53
|
});
|
|
54
|
-
it('should be able to undo after execute', () => {
|
|
54
|
+
it('should be able to undo after execute', async () => {
|
|
55
55
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
56
|
-
commandStack.execute(command1);
|
|
56
|
+
await commandStack.execute(command1);
|
|
57
57
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
58
58
|
});
|
|
59
|
-
it('should clear the redo stack after execution', () => {
|
|
59
|
+
it('should clear the redo stack after execution', async () => {
|
|
60
60
|
commandStack['commands'].push(command2);
|
|
61
61
|
commandStack['top'] = -1;
|
|
62
62
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
63
|
-
commandStack.execute(command1);
|
|
63
|
+
await commandStack.execute(command1);
|
|
64
64
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
65
65
|
});
|
|
66
|
-
it('should flush the stack in case of an execution error', () => {
|
|
66
|
+
it('should flush the stack in case of an execution error', async () => {
|
|
67
67
|
command2.execute.throwsException();
|
|
68
68
|
const flushSpy = sandbox.spy(commandStack, 'flush');
|
|
69
|
-
(0,
|
|
69
|
+
await (0, mock_util_1.expectToThrowAsync)(() => commandStack.execute(command2));
|
|
70
70
|
(0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
|
|
71
71
|
(0, chai_1.expect)(flushSpy.calledOnce).to.be.true;
|
|
72
72
|
});
|
|
73
73
|
});
|
|
74
74
|
describe('undo', () => {
|
|
75
|
-
it('should do nothing if the command stack is empty', () => {
|
|
75
|
+
it('should do nothing if the command stack is empty', async () => {
|
|
76
76
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
77
|
-
commandStack.undo();
|
|
77
|
+
await commandStack.undo();
|
|
78
78
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
79
79
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
80
80
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
81
81
|
});
|
|
82
|
-
it('should undo the command and become non-dirty again', () => {
|
|
82
|
+
it('should undo the command and become non-dirty again', async () => {
|
|
83
83
|
commandStack['commands'].push(command1);
|
|
84
84
|
commandStack['top'] = 0;
|
|
85
85
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
86
86
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
87
87
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
88
|
-
commandStack.undo();
|
|
88
|
+
await commandStack.undo();
|
|
89
89
|
(0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
|
|
90
90
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
91
91
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
92
92
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
93
93
|
});
|
|
94
|
-
it('should undo multiple command and become non-dirty again', () => {
|
|
94
|
+
it('should undo multiple command and become non-dirty again', async () => {
|
|
95
95
|
commandStack['commands'].push(command1, command2);
|
|
96
96
|
commandStack['top'] = 1;
|
|
97
97
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
98
98
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
99
99
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
100
|
-
commandStack.undo();
|
|
100
|
+
await commandStack.undo();
|
|
101
101
|
(0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
|
|
102
102
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
103
103
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
104
104
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
105
|
-
commandStack.undo();
|
|
105
|
+
await commandStack.undo();
|
|
106
106
|
(0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
|
|
107
107
|
(0, chai_1.expect)(command1.undo.calledAfter(command2.undo)).to.be.true;
|
|
108
108
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
109
109
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
110
110
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
111
111
|
});
|
|
112
|
-
it('should flush the stack in case of an execution error', () => {
|
|
112
|
+
it('should flush the stack in case of an execution error', async () => {
|
|
113
113
|
command2.undo.throwsException();
|
|
114
114
|
const flushSpy = sandbox.spy(commandStack, 'flush');
|
|
115
115
|
commandStack['commands'].push(command2);
|
|
116
116
|
commandStack['top'] = 0;
|
|
117
|
-
(0,
|
|
117
|
+
await (0, mock_util_1.expectToThrowAsync)(() => commandStack.undo());
|
|
118
118
|
(0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
|
|
119
119
|
(0, chai_1.expect)(flushSpy.calledOnce).to.be.true;
|
|
120
120
|
});
|
|
121
121
|
});
|
|
122
122
|
describe('redo', () => {
|
|
123
|
-
it('should do nothing if the command stack is empty', () => {
|
|
123
|
+
it('should do nothing if the command stack is empty', async () => {
|
|
124
124
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
125
|
-
commandStack.redo();
|
|
125
|
+
await commandStack.redo();
|
|
126
126
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
127
127
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
128
128
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
129
129
|
});
|
|
130
|
-
it('should redo the command and become dirty again', () => {
|
|
130
|
+
it('should redo the command and become dirty again', async () => {
|
|
131
131
|
commandStack['commands'].push(command1);
|
|
132
132
|
commandStack['top'] = -1;
|
|
133
133
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
134
134
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
135
135
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
136
|
-
commandStack.redo();
|
|
136
|
+
await commandStack.redo();
|
|
137
137
|
(0, chai_1.expect)(command1.redo.calledOnce).to.be.true;
|
|
138
138
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
139
139
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
140
140
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
141
141
|
});
|
|
142
|
-
it('should undo multiple command and become non-dirty again', () => {
|
|
142
|
+
it('should undo multiple command and become non-dirty again', async () => {
|
|
143
143
|
commandStack['commands'].push(command2, command1);
|
|
144
144
|
commandStack['top'] = -1;
|
|
145
145
|
commandStack['saveIndex'] = -1;
|
|
146
146
|
(0, chai_1.expect)(commandStack.isDirty).to.be.false;
|
|
147
147
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
148
148
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
149
|
-
commandStack.redo();
|
|
149
|
+
await commandStack.redo();
|
|
150
150
|
(0, chai_1.expect)(command2.redo.calledOnce).to.be.true;
|
|
151
151
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.true;
|
|
152
152
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
153
153
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
154
|
-
commandStack.redo();
|
|
154
|
+
await commandStack.redo();
|
|
155
155
|
(0, chai_1.expect)(command1.redo.calledOnce).to.be.true;
|
|
156
156
|
(0, chai_1.expect)(command1.redo.calledAfter(command2.redo)).to.be.true;
|
|
157
157
|
(0, chai_1.expect)(commandStack.isDirty).to.be.true;
|
|
158
158
|
(0, chai_1.expect)(commandStack.canRedo()).to.be.false;
|
|
159
159
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
160
160
|
});
|
|
161
|
-
it('should flush the stack in case of an execution error', () => {
|
|
161
|
+
it('should flush the stack in case of an execution error', async () => {
|
|
162
162
|
command2.redo.throwsException();
|
|
163
163
|
const flushSpy = sandbox.spy(commandStack, 'flush');
|
|
164
164
|
commandStack['commands'].push(command2);
|
|
165
165
|
commandStack['top'] = -1;
|
|
166
|
-
(0,
|
|
166
|
+
await (0, mock_util_1.expectToThrowAsync)(() => commandStack.redo());
|
|
167
167
|
(0, chai_1.expect)(command2.redo.calledOnce).to.be.true;
|
|
168
168
|
(0, chai_1.expect)(flushSpy.calledOnce).to.be.true;
|
|
169
169
|
});
|
|
170
|
-
it('should be able to undo after redo', () => {
|
|
170
|
+
it('should be able to undo after redo', async () => {
|
|
171
171
|
commandStack['commands'].push(command1);
|
|
172
172
|
commandStack['top'] = -1;
|
|
173
173
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.false;
|
|
174
|
-
commandStack.redo();
|
|
174
|
+
await commandStack.redo();
|
|
175
175
|
(0, chai_1.expect)(commandStack.canUndo()).to.be.true;
|
|
176
176
|
});
|
|
177
177
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-stack.spec.js","sourceRoot":"","sources":["../../../src/common/command/command-stack.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-stack.spec.js","sourceRoot":"","sources":["../../../src/common/command/command-stack.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
+
import { MaybePromise } from '@eclipse-glsp/protocol';
|
|
16
17
|
/**
|
|
17
18
|
* A command implements a specific modification of the source model, which can be applied by invoking `execute()`.
|
|
18
19
|
* Commands may also provide implementations to `undo()` and `redo()` the effect they had.
|
|
@@ -27,17 +28,17 @@ export interface Command {
|
|
|
27
28
|
/**
|
|
28
29
|
* Performs the command activity required for the effect (e.g. source model change).
|
|
29
30
|
*/
|
|
30
|
-
execute(): void
|
|
31
|
+
execute(): MaybePromise<void>;
|
|
31
32
|
/**
|
|
32
33
|
* Performs the command activity required to `undo` the effects of a preceding `execute` (or `redo`).
|
|
33
34
|
* The effect, if any, of calling `undo` before `execute` or `redo` have been called, is undefined.
|
|
34
35
|
*/
|
|
35
|
-
undo(): void
|
|
36
|
+
undo(): MaybePromise<void>;
|
|
36
37
|
/**
|
|
37
38
|
* Performs the command activity required to `redo` the effect after undoing the effect.
|
|
38
39
|
* The effect, if any, of calling `redo` before `undo` is called is undefined.
|
|
39
40
|
*/
|
|
40
|
-
redo(): void
|
|
41
|
+
redo(): MaybePromise<void>;
|
|
41
42
|
/**
|
|
42
43
|
* Returns whether the command can be undone.
|
|
43
44
|
* This function is optional. If not implemented, it is assumed that the command can be undone.
|
|
@@ -55,9 +56,9 @@ export declare class CompoundCommand implements Command {
|
|
|
55
56
|
protected readonly commands: Command[];
|
|
56
57
|
constructor(commands: Command[]);
|
|
57
58
|
constructor(...commands: Command[]);
|
|
58
|
-
execute(): void
|
|
59
|
-
undo(): void
|
|
60
|
-
redo(): void
|
|
59
|
+
execute(): Promise<void>;
|
|
60
|
+
undo(): Promise<void>;
|
|
61
|
+
redo(): Promise<void>;
|
|
61
62
|
canUndo(): boolean;
|
|
62
63
|
}
|
|
63
64
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAwB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE9B;;;OAGG;IACH,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE3B;;;OAGG;IACH,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAE3B;;;;OAIG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC;CACvB;AAED,yBAAiB,OAAO,CAAC;IACrB,SAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEjD;CACJ;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAE3B,QAAQ,EAAE,OAAO,EAAE;gBACnB,GAAG,QAAQ,EAAE,OAAO,EAAE;IAM5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,OAAO,IAAI,OAAO;CAGrB"}
|
|
@@ -33,18 +33,18 @@ class CompoundCommand {
|
|
|
33
33
|
this.commands = [];
|
|
34
34
|
(0, protocol_1.flatPush)(this.commands, commands);
|
|
35
35
|
}
|
|
36
|
-
execute() {
|
|
36
|
+
async execute() {
|
|
37
37
|
const alreadyExecuted = [];
|
|
38
38
|
try {
|
|
39
|
-
this.commands
|
|
40
|
-
command.execute();
|
|
39
|
+
for (const command of this.commands) {
|
|
40
|
+
await command.execute();
|
|
41
41
|
alreadyExecuted.unshift(command);
|
|
42
|
-
}
|
|
42
|
+
}
|
|
43
43
|
}
|
|
44
44
|
catch (err) {
|
|
45
45
|
for (const command of alreadyExecuted) {
|
|
46
46
|
if (Command.canUndo(command)) {
|
|
47
|
-
command.undo();
|
|
47
|
+
await command.undo();
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
50
|
break;
|
|
@@ -53,29 +53,33 @@ class CompoundCommand {
|
|
|
53
53
|
throw err;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
undo() {
|
|
56
|
+
async undo() {
|
|
57
57
|
const alreadyUndone = [];
|
|
58
58
|
try {
|
|
59
|
-
[...this.commands].reverse()
|
|
60
|
-
command.undo();
|
|
59
|
+
for (const command of [...this.commands].reverse()) {
|
|
60
|
+
await command.undo();
|
|
61
61
|
alreadyUndone.unshift(command);
|
|
62
|
-
}
|
|
62
|
+
}
|
|
63
63
|
}
|
|
64
64
|
catch (err) {
|
|
65
|
-
|
|
65
|
+
for (const command of alreadyUndone) {
|
|
66
|
+
await command.redo();
|
|
67
|
+
}
|
|
66
68
|
throw err;
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
|
-
redo() {
|
|
71
|
+
async redo() {
|
|
70
72
|
const alreadyRedone = [];
|
|
71
73
|
try {
|
|
72
|
-
this.commands
|
|
73
|
-
command.redo();
|
|
74
|
+
for (const command of this.commands) {
|
|
75
|
+
await command.redo();
|
|
74
76
|
alreadyRedone.unshift(command);
|
|
75
|
-
}
|
|
77
|
+
}
|
|
76
78
|
}
|
|
77
79
|
catch (err) {
|
|
78
|
-
|
|
80
|
+
for (const command of alreadyRedone) {
|
|
81
|
+
await command.undo();
|
|
82
|
+
}
|
|
79
83
|
throw err;
|
|
80
84
|
}
|
|
81
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,qDAA4E;AAsC5E,IAAiB,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACpB,SAAgB,OAAO,CAAC,OAAgB;;QACpC,OAAO,MAAA,MAAA,OAAO,CAAC,OAAO,uDAAI,mCAAI,IAAI,CAAC;IACvC,CAAC;IAFe,eAAO,UAEtB,CAAA;AACL,CAAC,EAJgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAIvB;AAED;;GAEG;AACH,MAAa,eAAe;IAKxB,YAAY,GAAG,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAA,mBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,eAAe,GAAc,EAAE,CAAC;QAEtC,IAAI;YACA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACxB,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACpC;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;gBACnC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;iBACxB;qBAAM;oBACH,MAAM;iBACT;aACJ;YACD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,aAAa,GAAc,EAAE,CAAC;QACpC,IAAI;YACA,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;gBACjC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;aACxB;YACD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,aAAa,GAAc,EAAE,CAAC;QAEpC,IAAI;YACA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAClC;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;gBACjC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;aACxB;YACD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACJ;AAhED,0CAgEC"}
|
|
@@ -29,17 +29,17 @@ describe('CompoundCommand', () => {
|
|
|
29
29
|
sandbox.reset();
|
|
30
30
|
});
|
|
31
31
|
describe('execute', () => {
|
|
32
|
-
it('Should execute the subcommands in order', () => {
|
|
33
|
-
compoundCommand.execute();
|
|
32
|
+
it('Should execute the subcommands in order', async () => {
|
|
33
|
+
await compoundCommand.execute();
|
|
34
34
|
(0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
|
|
35
35
|
(0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
|
|
36
36
|
(0, chai_1.expect)(command3.execute.calledOnce).to.be.true;
|
|
37
37
|
(0, chai_1.expect)(command1.execute.calledBefore(command2.execute)).to.be.true;
|
|
38
38
|
(0, chai_1.expect)(command2.execute.calledBefore(command3.execute)).to.be.true;
|
|
39
39
|
});
|
|
40
|
-
it('Should undo partially executed subcommands in case of an error', () => {
|
|
40
|
+
it('Should undo partially executed subcommands in case of an error', async () => {
|
|
41
41
|
command3.execute.throwsException();
|
|
42
|
-
(0,
|
|
42
|
+
await (0, mock_util_1.expectToThrowAsync)(() => compoundCommand.execute());
|
|
43
43
|
(0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
|
|
44
44
|
(0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
|
|
45
45
|
(0, chai_1.expect)(command3.execute.calledOnce).to.be.true;
|
|
@@ -48,17 +48,17 @@ describe('CompoundCommand', () => {
|
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
50
|
describe('undo', () => {
|
|
51
|
-
it('Should undo the subcommands in reverse order', () => {
|
|
52
|
-
compoundCommand.undo();
|
|
51
|
+
it('Should undo the subcommands in reverse order', async () => {
|
|
52
|
+
await compoundCommand.undo();
|
|
53
53
|
(0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
|
|
54
54
|
(0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
|
|
55
55
|
(0, chai_1.expect)(command3.undo.calledOnce).to.be.true;
|
|
56
56
|
(0, chai_1.expect)(command1.undo.calledAfter(command2.undo)).to.be.true;
|
|
57
57
|
(0, chai_1.expect)(command2.undo.calledAfter(command3.undo)).to.be.true;
|
|
58
58
|
});
|
|
59
|
-
it('Should redo partially undone subcommands in case of an error', () => {
|
|
59
|
+
it('Should redo partially undone subcommands in case of an error', async () => {
|
|
60
60
|
command1.undo.throwsException();
|
|
61
|
-
(0,
|
|
61
|
+
await (0, mock_util_1.expectToThrowAsync)(() => compoundCommand.undo());
|
|
62
62
|
(0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
|
|
63
63
|
(0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
|
|
64
64
|
(0, chai_1.expect)(command3.undo.calledOnce).to.be.true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.spec.js","sourceRoot":"","sources":["../../../src/common/command/command.spec.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,+BAA8B;AAC9B,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"command.spec.js","sourceRoot":"","sources":["../../../src/common/command/command.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { GModelRootSchema } from '@eclipse-glsp/graph';
|
|
17
|
-
import { AnyObject } from '@eclipse-glsp/protocol';
|
|
17
|
+
import { AnyObject, MaybePromise } from '@eclipse-glsp/protocol';
|
|
18
18
|
import * as jsonPatch from 'fast-json-patch';
|
|
19
19
|
import { GModelSerializer } from '../features/model/gmodel-serializer';
|
|
20
20
|
import { ModelState } from '../features/model/model-state';
|
|
@@ -26,7 +26,7 @@ import { Command } from './command';
|
|
|
26
26
|
export declare abstract class AbstractRecordingCommand<JsonObject extends AnyObject> implements Command {
|
|
27
27
|
protected undoPatch?: jsonPatch.Operation[];
|
|
28
28
|
protected redoPatch?: jsonPatch.Operation[];
|
|
29
|
-
execute(): void
|
|
29
|
+
execute(): Promise<void>;
|
|
30
30
|
/**
|
|
31
31
|
* Retrieves the current state of the JSON object. Is called right before and
|
|
32
32
|
* right after {@link AbstractRecordingCommand.doExecute} to derive the undo & redo patches.
|
|
@@ -36,7 +36,7 @@ export declare abstract class AbstractRecordingCommand<JsonObject extends AnyObj
|
|
|
36
36
|
/**
|
|
37
37
|
* The actual execution i.e. series of changes applied to the JSOn object that should be captured.
|
|
38
38
|
*/
|
|
39
|
-
protected abstract doExecute(): void
|
|
39
|
+
protected abstract doExecute(): MaybePromise<void>;
|
|
40
40
|
protected applyPatch(object: JsonObject, patch: jsonPatch.Operation[]): void;
|
|
41
41
|
/**
|
|
42
42
|
* Captures the original state of the JSON object before executing the command routine.
|
|
@@ -55,8 +55,8 @@ export declare abstract class AbstractRecordingCommand<JsonObject extends AnyObj
|
|
|
55
55
|
*/
|
|
56
56
|
export declare class RecordingCommand<JsonObject extends AnyObject = AnyObject> extends AbstractRecordingCommand<JsonObject> {
|
|
57
57
|
protected jsonObject: JsonObject;
|
|
58
|
-
protected doExecute: () => void
|
|
59
|
-
constructor(jsonObject: JsonObject, doExecute: () => void);
|
|
58
|
+
protected doExecute: () => MaybePromise<void>;
|
|
59
|
+
constructor(jsonObject: JsonObject, doExecute: () => MaybePromise<void>);
|
|
60
60
|
protected getJsonObject(): JsonObject;
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
@@ -66,9 +66,9 @@ export declare class RecordingCommand<JsonObject extends AnyObject = AnyObject>
|
|
|
66
66
|
export declare class GModelRecordingCommand extends AbstractRecordingCommand<GModelRootSchema> {
|
|
67
67
|
protected modelState: ModelState;
|
|
68
68
|
protected serializer: GModelSerializer;
|
|
69
|
-
protected doExecute: () => void
|
|
70
|
-
constructor(modelState: ModelState, serializer: GModelSerializer, doExecute: () => void);
|
|
71
|
-
execute(): void
|
|
69
|
+
protected doExecute: () => MaybePromise<void>;
|
|
70
|
+
constructor(modelState: ModelState, serializer: GModelSerializer, doExecute: () => MaybePromise<void>);
|
|
71
|
+
execute(): Promise<void>;
|
|
72
72
|
protected getJsonObject(): GModelRootSchema;
|
|
73
73
|
protected applyPatch(rootSchema: GModelRootSchema, patch: jsonPatch.Operation[]): void;
|
|
74
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording-command.d.ts","sourceRoot":"","sources":["../../../src/common/command/recording-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"recording-command.d.ts","sourceRoot":"","sources":["../../../src/common/command/recording-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC;;;GAGG;AACH,8BAAsB,wBAAwB,CAAC,UAAU,SAAS,SAAS,CAAE,YAAW,OAAO;IAC3F,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAC5C,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAEtC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,UAAU;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC;IAElD,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI;IAI5E;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAInD,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,OAAO;CAGrB;AAED;;;GAGG;AACH,qBAAa,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,wBAAwB,CAAC,UAAU,CAAC;IACpG,SAAS,CAAC,UAAU,EAAE,UAAU;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC;gBAArE,UAAU,EAAE,UAAU,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC;IAI3F,SAAS,CAAC,aAAa,IAAI,UAAU;CAGxC;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,wBAAwB,CAAC,gBAAgB,CAAC;IACtE,SAAS,CAAC,UAAU,EAAE,UAAU;IAAE,SAAS,CAAC,UAAU,EAAE,gBAAgB;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC;gBAA7G,UAAU,EAAE,UAAU,EAAY,UAAU,EAAE,gBAAgB,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC;IAIpH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvC,SAAS,CAAC,aAAa,IAAI,gBAAgB;cAIxB,UAAU,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI;CAKlG"}
|
|
@@ -22,9 +22,9 @@ const jsonPatch = require("fast-json-patch");
|
|
|
22
22
|
* These changes are recorded in the form of json patches.
|
|
23
23
|
*/
|
|
24
24
|
class AbstractRecordingCommand {
|
|
25
|
-
execute() {
|
|
25
|
+
async execute() {
|
|
26
26
|
const beforeState = this.deepClone(this.getJsonObject());
|
|
27
|
-
this.doExecute();
|
|
27
|
+
await this.doExecute();
|
|
28
28
|
const afterState = this.getJsonObject();
|
|
29
29
|
this.undoPatch = jsonPatch.compare(afterState, beforeState);
|
|
30
30
|
this.redoPatch = jsonPatch.compare(beforeState, afterState);
|
|
@@ -82,8 +82,8 @@ class GModelRecordingCommand extends AbstractRecordingCommand {
|
|
|
82
82
|
this.serializer = serializer;
|
|
83
83
|
this.doExecute = doExecute;
|
|
84
84
|
}
|
|
85
|
-
execute() {
|
|
86
|
-
super.execute();
|
|
85
|
+
async execute() {
|
|
86
|
+
await super.execute();
|
|
87
87
|
this.modelState.index.indexRoot(this.modelState.root);
|
|
88
88
|
}
|
|
89
89
|
getJsonObject() {
|