Merge from vscode e5834d3280fcd04898efeac32b9cf1b893f9b127 (#9385)

* Merge from vscode e5834d3280fcd04898efeac32b9cf1b893f9b127

* distro
This commit is contained in:
Anthony Dresser
2020-02-28 00:37:06 -08:00
committed by GitHub
parent 70851716f7
commit 5d13ebf0d2
143 changed files with 1711 additions and 934 deletions

View File

@@ -16,8 +16,8 @@ import { IViewlet } from 'vs/workbench/common/viewlet';
export class UserDataSyncTrigger extends Disposable {
private readonly _onDidTriggerSync: Emitter<void> = this._register(new Emitter<void>());
readonly onDidTriggerSync: Event<void> = this._onDidTriggerSync.event;
private readonly _onDidTriggerSync: Emitter<string> = this._register(new Emitter<string>());
readonly onDidTriggerSync: Event<string> = this._onDidTriggerSync.event;
constructor(
@IEditorService editorService: IEditorService,
@@ -25,37 +25,44 @@ export class UserDataSyncTrigger extends Disposable {
@IViewletService viewletService: IViewletService,
) {
super();
this._register(Event.debounce(Event.any<any>(
Event.filter(editorService.onDidActiveEditorChange, () => this.isUserDataEditorInput(editorService.activeEditor)),
Event.filter(viewletService.onDidViewletOpen, viewlet => this.isUserDataViewlet(viewlet))
), () => undefined, 500)(() => this._onDidTriggerSync.fire()));
this._register(Event.any<string | undefined>(
Event.map(editorService.onDidActiveEditorChange, () => this.getUserDataEditorInputSource(editorService.activeEditor)),
Event.map(viewletService.onDidViewletOpen, viewlet => this.getUserDataViewletSource(viewlet))
)(source => {
if (source) {
this._onDidTriggerSync.fire(source);
}
}));
}
private isUserDataViewlet(viewlet: IViewlet): boolean {
return viewlet.getId() === VIEWLET_ID;
private getUserDataViewletSource(viewlet: IViewlet): string | undefined {
if (viewlet.getId() === VIEWLET_ID) {
return 'extensionsViewlet';
}
return undefined;
}
private isUserDataEditorInput(editorInput: IEditorInput | undefined): boolean {
private getUserDataEditorInputSource(editorInput: IEditorInput | undefined): string | undefined {
if (!editorInput) {
return false;
return undefined;
}
if (editorInput instanceof SettingsEditor2Input) {
return true;
return 'settingsEditor';
}
if (editorInput instanceof PreferencesEditorInput) {
return true;
return 'settingsEditor';
}
if (editorInput instanceof KeybindingsEditorInput) {
return true;
return 'keybindingsEditor';
}
const resource = editorInput.resource;
if (isEqual(resource, this.workbenchEnvironmentService.settingsResource)) {
return true;
return 'settingsEditor';
}
if (isEqual(resource, this.workbenchEnvironmentService.keybindingsResource)) {
return true;
return 'keybindingsEditor';
}
return false;
return undefined;
}
}