308
309
public restoreSnapshot(snapshot: ResourceEditStackSnapshot): void {
311
>
let isOK = true;
312
>
let snapshotIndex = 0;
313
>
let removePastAfter = -1;
314
>
for (let i = 0, len = this._past.length; i < len; i++, snapshotIndex++) {
315
>
const element = this._past[i];
316
>
if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {
317
>
isOK = false;
318
>
removePastAfter = i;
319
>
}
320
>
if (!isOK && element.type === UndoRedoElementType.Workspace) {
321
element.removeResource(this.resourceLabel, this.strResource, RemovedResourceReason.ExternalRemoval);
322
}
324
>
let removeFutureBefore = -1;
325
>
for (let i = this._future.length - 1; i >= 0; i--, snapshotIndex++) {
326
const element = this._future[i];
327
if (isOK && (snapshotIndex >= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {