mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode 966b87dd4013be1a9c06e2b8334522ec61905cc2 (#4696)
This commit is contained in:
@@ -56,6 +56,11 @@ export interface IFileService {
|
||||
*/
|
||||
canHandleResource(resource: URI): boolean;
|
||||
|
||||
/**
|
||||
* Checks if the provider for the provided resource has the provided file system capability.
|
||||
*/
|
||||
hasCapability(resource: URI, capability: FileSystemProviderCapabilities): Promise<boolean>;
|
||||
|
||||
//#endregion
|
||||
|
||||
/**
|
||||
@@ -188,6 +193,7 @@ export interface FileOpenOptions {
|
||||
|
||||
export interface FileDeleteOptions {
|
||||
recursive: boolean;
|
||||
useTrash: boolean;
|
||||
}
|
||||
|
||||
export enum FileType {
|
||||
@@ -215,7 +221,9 @@ export const enum FileSystemProviderCapabilities {
|
||||
FileFolderCopy = 1 << 3,
|
||||
|
||||
PathCaseSensitive = 1 << 10,
|
||||
Readonly = 1 << 11
|
||||
Readonly = 1 << 11,
|
||||
|
||||
Trash = 1 << 12
|
||||
}
|
||||
|
||||
export interface IFileSystemProvider {
|
||||
@@ -243,6 +251,34 @@ export interface IFileSystemProvider {
|
||||
write?(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
||||
}
|
||||
|
||||
export interface IFileSystemProviderWithFileReadWriteCapability extends IFileSystemProvider {
|
||||
readFile(resource: URI): Promise<Uint8Array>;
|
||||
writeFile(resource: URI, content: Uint8Array, opts: FileWriteOptions): Promise<void>;
|
||||
}
|
||||
|
||||
export function hasReadWriteCapability(provider: IFileSystemProvider): provider is IFileSystemProviderWithFileReadWriteCapability {
|
||||
return !!(provider.capabilities & FileSystemProviderCapabilities.FileReadWrite);
|
||||
}
|
||||
|
||||
export interface IFileSystemProviderWithFileFolderCopyCapability extends IFileSystemProvider {
|
||||
copy(from: URI, to: URI, opts: FileOverwriteOptions): Promise<void>;
|
||||
}
|
||||
|
||||
export function hasFileFolderCopyCapability(provider: IFileSystemProvider): provider is IFileSystemProviderWithFileFolderCopyCapability {
|
||||
return !!(provider.capabilities & FileSystemProviderCapabilities.FileFolderCopy);
|
||||
}
|
||||
|
||||
export interface IFileSystemProviderWithOpenReadWriteCloseCapability extends IFileSystemProvider {
|
||||
open(resource: URI, opts: FileOpenOptions): Promise<number>;
|
||||
close(fd: number): Promise<void>;
|
||||
read(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
||||
write(fd: number, pos: number, data: Uint8Array, offset: number, length: number): Promise<number>;
|
||||
}
|
||||
|
||||
export function hasOpenReadWriteCloseCapability(provider: IFileSystemProvider): provider is IFileSystemProviderWithOpenReadWriteCloseCapability {
|
||||
return !!(provider.capabilities & FileSystemProviderCapabilities.FileOpenReadWriteClose);
|
||||
}
|
||||
|
||||
export enum FileSystemProviderErrorCode {
|
||||
FileExists = 'EntryExists',
|
||||
FileNotFound = 'EntryNotFound',
|
||||
@@ -1103,8 +1139,6 @@ export interface ILegacyFileService {
|
||||
|
||||
createFile(resource: URI, content?: string, options?: ICreateFileOptions): Promise<IFileStat>;
|
||||
|
||||
del(resource: URI, options?: { useTrash?: boolean, recursive?: boolean }): Promise<void>;
|
||||
|
||||
watchFileChanges(resource: URI): void;
|
||||
|
||||
unwatchFileChanges(resource: URI): void;
|
||||
|
||||
Reference in New Issue
Block a user