From 51d294e163ec7bf7632b025fad7f531a28470fb8 Mon Sep 17 00:00:00 2001 From: Asher Date: Fri, 7 May 2021 11:43:19 -0500 Subject: [PATCH] Remove extension dir scan catch Now that we are creating the directories these shouldn't error. If they are somehow missing (if the user deletes them after VS Code starts for example) then I think we should surface that to the user. --- .../node/extensionsScanner.ts | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts b/lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts index b59301aa..ffec784a 100644 --- a/lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts +++ b/lib/vscode/src/vs/platform/extensionManagement/node/extensionsScanner.ts @@ -24,7 +24,7 @@ import { isWindows } from 'vs/base/common/platform'; import { flatten } from 'vs/base/common/arrays'; import { IStringDictionary } from 'vs/base/common/collections'; import { FileAccess } from 'vs/base/common/network'; -import { FileOperationError, FileOperationResult, IFileService } from 'vs/platform/files/common/files'; +import { IFileService } from 'vs/platform/files/common/files'; import { basename } from 'vs/base/common/resources'; import { generateUuid } from 'vs/base/common/uuid'; import { getErrorMessage } from 'vs/base/common/errors'; @@ -274,22 +274,11 @@ export class ExtensionsScanner extends Disposable { return [...systemExtensions, ...devSystemExtensions]; } + private async scanExtensionsInDir(dir: string, type: ExtensionType): Promise { const limiter = new Limiter(10); - /* - * NOTE@coder: use fileService.resolve() like upstream does, - * but simply ignore directories that do not exist. (upstream does not) - * - * Used to (<1.54) use pfs.readdir. - */ - const stat = await this.fileService.resolve(URI.file(dir)) - .catch((error) => { - if (!(error instanceof FileOperationError && error.fileOperationResult === FileOperationResult.FILE_NOT_FOUND)) { - throw error; - } - return undefined; - }); - if (stat && stat.children) { + const stat = await this.fileService.resolve(URI.file(dir)); + if (stat.children) { const extensions = await Promise.all(stat.children.filter(c => c.isDirectory) .map(c => limiter.queue(async () => { if (type === ExtensionType.User && basename(c.resource).indexOf('.') === 0) { // Do not consider user extension folder starting with `.`