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.
This commit is contained in:
parent
9ff29d17fb
commit
51d294e163
@ -24,7 +24,7 @@ import { isWindows } from 'vs/base/common/platform';
|
|||||||
import { flatten } from 'vs/base/common/arrays';
|
import { flatten } from 'vs/base/common/arrays';
|
||||||
import { IStringDictionary } from 'vs/base/common/collections';
|
import { IStringDictionary } from 'vs/base/common/collections';
|
||||||
import { FileAccess } from 'vs/base/common/network';
|
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 { basename } from 'vs/base/common/resources';
|
||||||
import { generateUuid } from 'vs/base/common/uuid';
|
import { generateUuid } from 'vs/base/common/uuid';
|
||||||
import { getErrorMessage } from 'vs/base/common/errors';
|
import { getErrorMessage } from 'vs/base/common/errors';
|
||||||
@ -274,22 +274,11 @@ export class ExtensionsScanner extends Disposable {
|
|||||||
return [...systemExtensions, ...devSystemExtensions];
|
return [...systemExtensions, ...devSystemExtensions];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async scanExtensionsInDir(dir: string, type: ExtensionType): Promise<ILocalExtension[]> {
|
private async scanExtensionsInDir(dir: string, type: ExtensionType): Promise<ILocalExtension[]> {
|
||||||
const limiter = new Limiter<any>(10);
|
const limiter = new Limiter<any>(10);
|
||||||
/*
|
const stat = await this.fileService.resolve(URI.file(dir));
|
||||||
* NOTE@coder: use fileService.resolve() like upstream does,
|
if (stat.children) {
|
||||||
* 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 extensions = await Promise.all<ILocalExtension>(stat.children.filter(c => c.isDirectory)
|
const extensions = await Promise.all<ILocalExtension>(stat.children.filter(c => c.isDirectory)
|
||||||
.map(c => limiter.queue(async () => {
|
.map(c => limiter.queue(async () => {
|
||||||
if (type === ExtensionType.User && basename(c.resource).indexOf('.') === 0) { // Do not consider user extension folder starting with `.`
|
if (type === ExtensionType.User && basename(c.resource).indexOf('.') === 0) { // Do not consider user extension folder starting with `.`
|
||||||
|
Reference in New Issue
Block a user