Merge from vscode 3bd60b2ba753e7fe39b42f99184bc6c5881d3551 (#4712)

This commit is contained in:
Anthony Dresser
2019-03-27 11:36:01 -07:00
committed by GitHub
parent eac3420583
commit 46b7afe558
36 changed files with 303 additions and 137 deletions

View File

@@ -45,6 +45,7 @@ export interface IPickAndOpenOptions {
forceNewWindow?: boolean;
defaultUri?: URI;
telemetryExtraData?: ITelemetryData;
availableFileSystems?: string[];
}
export interface ISaveDialogOptions {

View File

@@ -285,30 +285,31 @@ export enum FileSystemProviderErrorCode {
FileNotADirectory = 'EntryNotADirectory',
FileIsADirectory = 'EntryIsADirectory',
NoPermissions = 'NoPermissions',
Unavailable = 'Unavailable'
Unavailable = 'Unavailable',
Unknown = 'Unknown'
}
export class FileSystemProviderError extends Error {
constructor(message: string, public readonly code?: FileSystemProviderErrorCode) {
constructor(message: string, public readonly code: FileSystemProviderErrorCode) {
super(message);
}
}
export function createFileSystemProviderError(error: Error, code?: FileSystemProviderErrorCode): FileSystemProviderError {
export function createFileSystemProviderError(error: Error, code: FileSystemProviderErrorCode): FileSystemProviderError {
const providerError = new FileSystemProviderError(error.toString(), code);
markAsFileSystemProviderError(providerError);
markAsFileSystemProviderError(providerError, code);
return providerError;
}
export function markAsFileSystemProviderError(error: Error, code?: FileSystemProviderErrorCode): Error {
export function markAsFileSystemProviderError(error: Error, code: FileSystemProviderErrorCode): Error {
error.name = code ? `${code} (FileSystemError)` : `FileSystemError`;
return error;
}
export function toFileSystemProviderErrorCode(error: Error): FileSystemProviderErrorCode | undefined {
export function toFileSystemProviderErrorCode(error: Error): FileSystemProviderErrorCode {
// FileSystemProviderError comes with the code
if (error instanceof FileSystemProviderError) {
@@ -319,7 +320,7 @@ export function toFileSystemProviderErrorCode(error: Error): FileSystemProviderE
// went through the markAsFileSystemProviderError() method
const match = /^(.+) \(FileSystemError\)$/.exec(error.name);
if (!match) {
return undefined;
return FileSystemProviderErrorCode.Unknown;
}
switch (match[1]) {
@@ -331,7 +332,7 @@ export function toFileSystemProviderErrorCode(error: Error): FileSystemProviderE
case FileSystemProviderErrorCode.Unavailable: return FileSystemProviderErrorCode.Unavailable;
}
return undefined;
return FileSystemProviderErrorCode.Unknown;
}
export function toFileOperationResult(error: Error): FileOperationResult {