Merge from vscode 17c6d123d212f90300429ecad3fc96fcec6e338f (#9423)

This commit is contained in:
Anthony Dresser
2020-03-03 02:19:34 -08:00
committed by GitHub
parent 00d0e4778b
commit 886329cd67
7 changed files with 21 additions and 7 deletions

View File

@@ -49,6 +49,7 @@ import { fromNow } from 'vs/base/common/date';
import { IProductService } from 'vs/platform/product/common/productService';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { timeout } from 'vs/base/common/async';
const enum AuthStatus {
Initializing = 'Initializing',
@@ -510,7 +511,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
}
);
switch (result.choice) {
case 0: this.openerService.open(URI.parse('https://go.microsoft.com/fwlink/?LinkId=827846')); return;
case 0: this.openerService.open(URI.parse('https://aka.ms/vscode-settings-sync-help')); return;
case 2: return;
}
}
@@ -941,7 +942,8 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo
quickPick.items = items;
disposables.add(quickPick.onDidAccept(() => {
if (quickPick.selectedItems[0] && quickPick.selectedItems[0].id) {
commandService.executeCommand(quickPick.selectedItems[0].id);
// Introduce timeout as workaround - #91661 #91740
timeout(0).then(() => commandService.executeCommand(quickPick.selectedItems[0].id!));
}
quickPick.hide();
}));

View File

@@ -613,6 +613,8 @@ export class ElectronWindow extends Disposable {
}
private trackClosedWaitFiles(waitMarkerFile: URI, resourcesToWaitFor: URI[]): IDisposable {
let remainingResourcesToWaitFor = resourcesToWaitFor.slice(0);
// In wait mode, listen to changes to the editors and wait until the files
// are closed that the user wants to wait for. When this happens we delete
// the wait marker file to signal to the outside that editing is done.
@@ -622,7 +624,7 @@ export class ElectronWindow extends Disposable {
// Remove from resources to wait for based on the
// resources from editors that got closed
resourcesToWaitFor = resourcesToWaitFor.filter(resourceToWaitFor => {
remainingResourcesToWaitFor = remainingResourcesToWaitFor.filter(resourceToWaitFor => {
if (isEqual(resourceToWaitFor, masterResource) || isEqual(resourceToWaitFor, detailsResource)) {
return false; // remove - the closing editor matches this resource
}
@@ -630,7 +632,7 @@ export class ElectronWindow extends Disposable {
return true; // keep - not yet closed
});
if (resourcesToWaitFor.length === 0) {
if (remainingResourcesToWaitFor.length === 0) {
// If auto save is configured with the default delay (1s) it is possible
// to close the editor while the save still continues in the background. As such
// we have to also check if the files to wait for are dirty and if so wait

View File

@@ -297,6 +297,8 @@ export class SimpleFileDialog {
function doResolve(dialog: SimpleFileDialog, uri: URI | undefined) {
if (uri) {
uri = resources.addTrailingPathSeparator(uri, dialog.separator); // Ensures that c: is c:/ since this comes from user input and can be incorrect.
// To be consistent, we should never have a trailing path separator on directories (or anything else). Will not remove from c:/.
uri = resources.removeTrailingPathSeparator(uri);
}
resolve(uri);