diff --git a/src/vs/platform/files/common/files.ts b/src/vs/platform/files/common/files.ts index 854ef646d757bb3c076cf5f1f874e24d2f87654a..6b57656c76e8e3513e0ca7376d3f038546e7ce09 100644 --- a/src/vs/platform/files/common/files.ts +++ b/src/vs/platform/files/common/files.ts @@ -180,9 +180,11 @@ export interface FileOptions { } export interface IStat { + isFile: boolean; + isDirectory: boolean; + isSymbolicLink: boolean; mtime: number; size: number; - type: FileType2; } export interface IWatchOptions { diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index a0ce8f7b2e3580ca0607ca43350ad2b3e89e00e2..8158008cd853e4540812bf89cb9ce3e014e330d0 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -123,14 +123,10 @@ declare module 'vscode' { uri: Uri; } - export enum FileType2 { - File = 0b001, - Directory = 0b010, - SymbolicLink = 0b100, - } - export interface FileStat2 { - type: FileType2; + isFile: boolean; + isDirectory: boolean; + isSymbolicLink: boolean; mtime: number; size: number; } diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index aa7f6ee3094ab33ea74f084932893ed0ab59a1c1..054977f834def46c064cf7d5945ec72ebb0d1869 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -700,7 +700,6 @@ export function createApiFactory( DeprecatedFileChangeType: extHostTypes.FileChangeType, DeprecatedFileType: extHostTypes.FileType, FileChangeType2: extHostTypes.FileChangeType2, - FileType2: extHostTypes.FileType2, FileSystemError: extHostTypes.FileSystemError, FoldingRange: extHostTypes.FoldingRange, FoldingRangeKind: extHostTypes.FoldingRangeKind diff --git a/src/vs/workbench/api/node/extHostFileSystem.ts b/src/vs/workbench/api/node/extHostFileSystem.ts index 417d3f3e8a10df6be9dde595b88849240e74f6ba..0a1264901faa6067367bc230cce9c2e54a79ace0 100644 --- a/src/vs/workbench/api/node/extHostFileSystem.ts +++ b/src/vs/workbench/api/node/extHostFileSystem.ts @@ -14,7 +14,7 @@ import * as path from 'path'; import { IDisposable } from 'vs/base/common/lifecycle'; import { asWinJsPromise } from 'vs/base/common/async'; import { values } from 'vs/base/common/map'; -import { Range, FileType, FileChangeType, FileChangeType2, FileType2 } from 'vs/workbench/api/node/extHostTypes'; +import { Range, FileType, FileChangeType, FileChangeType2 } from 'vs/workbench/api/node/extHostTypes'; import { ExtHostLanguageFeatures } from 'vs/workbench/api/node/extHostLanguageFeatures'; import { Schemas } from 'vs/base/common/network'; @@ -91,21 +91,23 @@ class FileSystemProviderShim implements vscode.FileSystemProvider2 { private static _modernizeFileStat(stat: vscode.DeprecatedFileStat): vscode.FileStat2 { let { mtime, size, type } = stat; - let newType: vscode.FileType2; + let isFile = false; + let isDirectory = false; + let isSymbolicLink = false; // no support for bitmask, effectively no support for symlinks switch (type) { case FileType.Dir: - newType = FileType2.Directory; + isDirectory = true; break; case FileType.File: - newType = FileType2.File; + isFile = true; break; case FileType.Symlink: - newType = FileType2.SymbolicLink; + isSymbolicLink = true; break; } - return { mtime, size, type: newType }; + return { mtime, size, isFile, isDirectory, isSymbolicLink }; } private static _modernizeFileChange(e: vscode.DeprecatedFileChange): vscode.FileChange2 { diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index fd4a26b9784b79cd7b8cef8df857583f6ee89174..f75c83dbe184be06234f7beb8ac26cad424ae987 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -1832,12 +1832,6 @@ export enum FileType { Symlink = 2 } -export enum FileType2 { - File = 1, - Directory = 2, - SymbolicLink = 4, -} - export class FileSystemError extends Error { static EntryExists(message?: string): FileSystemError { diff --git a/src/vs/workbench/services/files/electron-browser/remoteFileService.ts b/src/vs/workbench/services/files/electron-browser/remoteFileService.ts index d3e66820572be17b5564f733a98fe616ca0b253c..b3c74b8269445526d7dcfca32871d30708e20826 100644 --- a/src/vs/workbench/services/files/electron-browser/remoteFileService.ts +++ b/src/vs/workbench/services/files/electron-browser/remoteFileService.ts @@ -16,7 +16,7 @@ import { ITextResourceConfigurationService } from 'vs/editor/common/services/res import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { FileChangesEvent, FileOperation, FileOperationError, FileOperationEvent, FileOperationResult, FileType2, IContent, ICreateFileOptions, IFileStat, IFileSystemProvider, IFilesConfiguration, IResolveContentOptions, IResolveFileOptions, IResolveFileResult, IStat, IStreamContent, ITextSnapshot, IUpdateContentOptions, StringSnapshot, FileSystemProviderCapabilities, FileOptions } from 'vs/platform/files/common/files'; +import { FileChangesEvent, FileOperation, FileOperationError, FileOperationEvent, FileOperationResult, IContent, ICreateFileOptions, IFileStat, IFileSystemProvider, IFilesConfiguration, IResolveContentOptions, IResolveFileOptions, IResolveFileResult, IStat, IStreamContent, ITextSnapshot, IUpdateContentOptions, StringSnapshot, FileSystemProviderCapabilities, FileOptions } from 'vs/platform/files/common/files'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IStorageService } from 'vs/platform/storage/common/storage'; @@ -28,10 +28,10 @@ import { createReadableOfProvider, createReadableOfSnapshot, createWritableOfPro function toIFileStat(provider: IFileSystemProvider, tuple: [URI, IStat], recurse?: (tuple: [URI, IStat]) => boolean): TPromise { const [resource, stat] = tuple; const fileStat: IFileStat = { - isDirectory: (stat.type & FileType2.Directory) !== 0, - isSymbolicLink: (stat.type & FileType2.SymbolicLink) !== 0, - resource: resource, + resource, name: posix.basename(resource.path), + isDirectory: stat.isDirectory, + isSymbolicLink: stat.isSymbolicLink, mtime: stat.mtime, size: stat.size, etag: stat.mtime.toString(29) + stat.size.toString(31),