From bb519ce11b4701b49c6562b0ad7cc3e1c413233b Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Mon, 28 Oct 2019 11:59:10 +0100 Subject: [PATCH] Fix \ on Windows in simple file picker Fixes https://github.com/microsoft/vscode-remote-release/issues/1596 --- .../services/dialogs/browser/simpleFileDialog.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts b/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts index e83748f5e23..edd998eeb60 100644 --- a/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts +++ b/src/vs/workbench/services/dialogs/browser/simpleFileDialog.ts @@ -514,6 +514,16 @@ export class SimpleFileDialog { return undefined; } + private root(value: URI) { + let lastDir = value; + let dir = resources.dirname(value); + while (!resources.isEqual(lastDir, dir)) { + lastDir = dir; + dir = resources.dirname(dir); + } + return dir; + } + private async tryUpdateItems(value: string, valueUri: URI): Promise { if ((value.length > 0) && ((value[value.length - 1] === '~') || (value[0] === '~'))) { let newDir = this.userHome; @@ -522,6 +532,11 @@ export class SimpleFileDialog { } await this.updateItems(newDir, true); return UpdateResult.Updated; + } else if (value === '\\') { + valueUri = this.root(this.currentFolder); + value = this.pathFromUri(valueUri); + await this.updateItems(valueUri, true); + return UpdateResult.Updated; } else if (!resources.isEqual(this.currentFolder, valueUri, true) && (this.endsWithSlash(value) || (!resources.isEqual(this.currentFolder, resources.dirname(valueUri), true) && resources.isEqualOrParent(this.currentFolder, resources.dirname(valueUri), true)))) { let stat: IFileStat | undefined; try { -- GitLab