Skip to content

Commit a9e9f70

Browse files
committed
rename to editable resource preview
1 parent b63ccef commit a9e9f70

2 files changed

Lines changed: 34 additions & 42 deletions

File tree

src/vs/platform/userDataSync/common/abstractSynchronizer.ts

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,17 @@ export interface IMergeResult extends IAcceptResult {
7676
readonly hasConflicts: boolean;
7777
}
7878

79-
export interface IResourcePreviewResult extends IBaseResourcePreview, IResourcePreview {
80-
mergeResult?: IMergeResult;
79+
interface IEditableResourcePreview extends IBaseResourcePreview, IResourcePreview {
80+
localChange: Change;
81+
remoteChange: Change;
82+
mergeState: MergeState;
8183
acceptResult?: IAcceptResult;
8284
}
8385

84-
export interface ISyncResourcePreview extends IBaseSyncResourcePreview {
86+
interface ISyncResourcePreview extends IBaseSyncResourcePreview {
8587
readonly remoteUserData: IRemoteUserData;
8688
readonly lastSyncUserData: IRemoteUserData | null;
87-
readonly resourcePreviews: IResourcePreviewResult[];
89+
readonly resourcePreviews: IEditableResourcePreview[];
8890
}
8991

9092
export abstract class AbstractSynchroniser extends Disposable {
@@ -100,10 +102,10 @@ export abstract class AbstractSynchroniser extends Disposable {
100102
private _onDidChangStatus: Emitter<SyncStatus> = this._register(new Emitter<SyncStatus>());
101103
readonly onDidChangeStatus: Event<SyncStatus> = this._onDidChangStatus.event;
102104

103-
private _conflicts: IResourcePreviewResult[] = [];
104-
get conflicts(): IResourcePreviewResult[] { return this._conflicts; }
105-
private _onDidChangeConflicts: Emitter<IResourcePreviewResult[]> = this._register(new Emitter<IResourcePreviewResult[]>());
106-
readonly onDidChangeConflicts: Event<IResourcePreviewResult[]> = this._onDidChangeConflicts.event;
105+
private _conflicts: IBaseResourcePreview[] = [];
106+
get conflicts(): IBaseResourcePreview[] { return this._conflicts; }
107+
private _onDidChangeConflicts: Emitter<IBaseResourcePreview[]> = this._register(new Emitter<IBaseResourcePreview[]>());
108+
readonly onDidChangeConflicts: Event<IBaseResourcePreview[]> = this._onDidChangeConflicts.event;
107109

108110
private readonly localChangeTriggerScheduler = new RunOnceScheduler(() => this.doTriggerLocalChange(), 50);
109111
private readonly _onDidChangeLocal: Emitter<void> = this._register(new Emitter<void>());
@@ -371,29 +373,23 @@ export abstract class AbstractSynchroniser extends Disposable {
371373
const acceptResult: IAcceptResult | undefined = mergeResult && !mergeResult.hasConflicts
372374
? await this.getAcceptResult(resourcePreview, resourcePreview.previewResource, undefined, CancellationToken.None)
373375
: undefined;
374-
return {
375-
...resourcePreview,
376-
mergeResult,
377-
acceptResult,
378-
mergeState: mergeResult.hasConflicts ? MergeState.Conflict : acceptResult ? MergeState.Accepted : MergeState.Preview,
379-
localChange: acceptResult ? acceptResult.localChange : mergeResult.localChange,
380-
remoteChange: acceptResult ? acceptResult.remoteChange : mergeResult.remoteChange
381-
};
376+
resourcePreview.acceptResult = acceptResult;
377+
resourcePreview.mergeState = mergeResult.hasConflicts ? MergeState.Conflict : acceptResult ? MergeState.Accepted : MergeState.Preview;
378+
resourcePreview.localChange = acceptResult ? acceptResult.localChange : mergeResult.localChange;
379+
resourcePreview.remoteChange = acceptResult ? acceptResult.remoteChange : mergeResult.remoteChange;
380+
return resourcePreview;
382381
});
383382
return this.syncPreviewPromise;
384383
}
385384

386385
async accept(resource: URI, content?: string | null): Promise<ISyncResourcePreview | null> {
387386
await this.updateSyncResourcePreview(resource, async (resourcePreview) => {
388387
const acceptResult = await this.getAcceptResult(resourcePreview, resource, content, CancellationToken.None);
389-
return {
390-
...resourcePreview,
391-
acceptResult,
392-
mergeResult: undefined,
393-
mergeState: MergeState.Accepted,
394-
localChange: acceptResult.localChange,
395-
remoteChange: acceptResult.remoteChange
396-
};
388+
resourcePreview.acceptResult = acceptResult;
389+
resourcePreview.mergeState = MergeState.Accepted;
390+
resourcePreview.localChange = acceptResult.localChange;
391+
resourcePreview.remoteChange = acceptResult.remoteChange;
392+
return resourcePreview;
397393
});
398394
return this.syncPreviewPromise;
399395
}
@@ -402,19 +398,16 @@ export abstract class AbstractSynchroniser extends Disposable {
402398
await this.updateSyncResourcePreview(resource, async (resourcePreview) => {
403399
const mergeResult = await this.getMergeResult(resourcePreview, CancellationToken.None);
404400
await this.fileService.writeFile(resourcePreview.previewResource, VSBuffer.fromString(mergeResult.content || ''));
405-
return {
406-
...resourcePreview,
407-
mergeResult: undefined,
408-
acceptResult: undefined,
409-
mergeState: MergeState.Preview,
410-
localChange: mergeResult.localChange,
411-
remoteChange: mergeResult.remoteChange
412-
};
401+
resourcePreview.acceptResult = undefined;
402+
resourcePreview.mergeState = MergeState.Preview;
403+
resourcePreview.localChange = mergeResult.localChange;
404+
resourcePreview.remoteChange = mergeResult.remoteChange;
405+
return resourcePreview;
413406
});
414407
return this.syncPreviewPromise;
415408
}
416409

417-
private async updateSyncResourcePreview(resource: URI, updateResourcePreview: (resourcePreview: IResourcePreviewResult) => Promise<IResourcePreviewResult>): Promise<void> {
410+
private async updateSyncResourcePreview(resource: URI, updateResourcePreview: (resourcePreview: IEditableResourcePreview) => Promise<IEditableResourcePreview>): Promise<void> {
418411
if (!this.syncPreviewPromise) {
419412
return;
420413
}
@@ -452,12 +445,12 @@ export abstract class AbstractSynchroniser extends Disposable {
452445
const preview = await this.syncPreviewPromise;
453446

454447
// check for conflicts
455-
if (preview.resourcePreviews.some(({ mergeResult }) => mergeResult?.hasConflicts)) {
448+
if (preview.resourcePreviews.some(({ mergeState }) => mergeState === MergeState.Conflict)) {
456449
return SyncStatus.HasConflicts;
457450
}
458451

459452
// check if all are accepted
460-
if (preview.resourcePreviews.some(({ localChange, remoteChange, acceptResult }) => !acceptResult)) {
453+
if (preview.resourcePreviews.some(({ mergeState }) => mergeState !== MergeState.Accepted)) {
461454
return SyncStatus.Syncing;
462455
}
463456

@@ -479,8 +472,8 @@ export abstract class AbstractSynchroniser extends Disposable {
479472
} catch (error) { /* Ignore */ }
480473
}
481474

482-
private updateConflicts(resourcePreviews: IResourcePreviewResult[]): void {
483-
const conflicts = resourcePreviews.filter(r => r.mergeResult?.hasConflicts);
475+
private updateConflicts(resourcePreviews: IEditableResourcePreview[]): void {
476+
const conflicts = resourcePreviews.filter(({ mergeState }) => mergeState === MergeState.Conflict);
484477
if (!equals(this._conflicts, conflicts, (a, b) => isEqual(a.previewResource, b.previewResource))) {
485478
this._conflicts = conflicts;
486479
this._onDidChangeConflicts.fire(conflicts);
@@ -566,7 +559,7 @@ export abstract class AbstractSynchroniser extends Disposable {
566559
const lastSyncUserDataForPreview = lastSyncUserData === null && isLastSyncFromCurrentMachine ? remoteUserData : lastSyncUserData;
567560
const resourcePreviewResults = await this.generateSyncPreview(remoteUserData, lastSyncUserDataForPreview, token);
568561

569-
const resourcePreviews: IResourcePreviewResult[] = [];
562+
const resourcePreviews: IEditableResourcePreview[] = [];
570563
for (const resourcePreviewResult of resourcePreviewResults) {
571564
const acceptedResource = resourcePreviewResult.previewResource.with({ scheme: USER_DATA_SYNC_SCHEME, authority: 'accepted' });
572565

@@ -598,7 +591,6 @@ export abstract class AbstractSynchroniser extends Disposable {
598591
resourcePreviews.push({
599592
...resourcePreviewResult,
600593
acceptedResource: resourcePreviewResult.previewResource.with({ scheme: USER_DATA_SYNC_SCHEME, authority: 'accepted' }),
601-
mergeResult,
602594
acceptResult,
603595
mergeState: mergeResult?.hasConflicts ? MergeState.Conflict : acceptResult ? MergeState.Accepted : MergeState.Preview,
604596
localChange: acceptResult ? acceptResult.localChange : mergeResult ? mergeResult.localChange : resourcePreviewResult.localChange,

src/vs/platform/userDataSync/test/common/synchronizer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import * as assert from 'assert';
7-
import { IUserDataSyncStoreService, SyncResource, SyncStatus, IUserDataSyncResourceEnablementService, IRemoteUserData, Change, USER_DATA_SYNC_SCHEME, IUserDataManifest, MergeState } from 'vs/platform/userDataSync/common/userDataSync';
7+
import { IUserDataSyncStoreService, SyncResource, SyncStatus, IUserDataSyncResourceEnablementService, IRemoteUserData, Change, USER_DATA_SYNC_SCHEME, IUserDataManifest, MergeState, IResourcePreview as IBaseResourcePreview } from 'vs/platform/userDataSync/common/userDataSync';
88
import { UserDataSyncClient, UserDataSyncTestServer } from 'vs/platform/userDataSync/test/common/userDataSyncClient';
99
import { DisposableStore, toDisposable } from 'vs/base/common/lifecycle';
1010
import { AbstractSynchroniser, IAcceptResult, IMergeResult, IResourcePreview } from 'vs/platform/userDataSync/common/abstractSynchronizer';
@@ -469,11 +469,11 @@ suite('TestSynchronizer', () => {
469469
assertConflicts(testObject.conflicts, []);
470470
});
471471

472-
function assertConflicts(actual: IResourcePreview[], expected: URI[]) {
472+
function assertConflicts(actual: IBaseResourcePreview[], expected: URI[]) {
473473
assert.deepEqual(actual.map(({ previewResource }) => previewResource.toString()), expected.map(uri => uri.toString()));
474474
}
475475

476-
function assertPreviews(actual: IResourcePreview[], expected: URI[]) {
476+
function assertPreviews(actual: IBaseResourcePreview[], expected: URI[]) {
477477
assert.deepEqual(actual.map(({ previewResource }) => previewResource.toString()), expected.map(uri => uri.toString()));
478478
}
479479

0 commit comments

Comments
 (0)