Skip to content

Commit

Permalink
tweak enums, #35449
Browse files Browse the repository at this point in the history
  • Loading branch information
jrieken committed Apr 6, 2018
1 parent 05c70a3 commit 2f16d38
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 25 deletions.
7 changes: 4 additions & 3 deletions src/vs/platform/files/common/files.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,10 +165,11 @@ export interface IFileService {


export enum FileType {
File = 0,
Dir = 1,
Symlink = 2
File = 1,
Dir = 2,
Symlink = 64
}

export interface IStat {
id: number | string;
mtime: number;
Expand Down
21 changes: 15 additions & 6 deletions src/vs/vscode.proposed.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,18 @@ declare module 'vscode' {
// }

export enum FileChangeType {
Updated = 0,
Added = 1,
Deleted = 2
Changed = 1,
Created = 2,
Deleted = 3,

/**
* @deprecated
*/
Updated = 1,
/**
* @deprecated
*/
Added = 2,
}

export interface FileChange {
Expand All @@ -164,9 +173,9 @@ declare module 'vscode' {
}

export enum FileType {
File = 0,
Dir = 1,
Symlink = 2
File = 1,
Dir = 2,
Symlink = 64
}

export interface FileStat {
Expand Down
42 changes: 33 additions & 9 deletions src/vs/workbench/api/node/extHostFileSystem.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@

import URI, { UriComponents } from 'vs/base/common/uri';
import { TPromise } from 'vs/base/common/winjs.base';
import { MainContext, IMainContext, ExtHostFileSystemShape, MainThreadFileSystemShape } from './extHost.protocol';
import { MainContext, IMainContext, ExtHostFileSystemShape, MainThreadFileSystemShape, IFileChangeDto } from './extHost.protocol';
import * as vscode from 'vscode';
import { IStat } from 'vs/platform/files/common/files';
import * as files from 'vs/platform/files/common/files';
import { IDisposable } from 'vs/base/common/lifecycle';
import { asWinJsPromise } from 'vs/base/common/async';
import { IPatternInfo } from 'vs/platform/search/common/search';
import { values } from 'vs/base/common/map';
import { Range } from 'vs/workbench/api/node/extHostTypes';
import { Range, FileChangeType } from 'vs/workbench/api/node/extHostTypes';
import { ExtHostLanguageFeatures } from 'vs/workbench/api/node/extHostLanguageFeatures';
import { IProgress } from 'vs/platform/progress/common/progress';

Expand Down Expand Up @@ -77,7 +77,7 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
this._proxy.$registerFileSystemProvider(handle, scheme);
let reg: IDisposable;
if (provider.onDidChange) {
reg = provider.onDidChange(event => this._proxy.$onFileSystemChange(handle, <any>event));
reg = provider.onDidChange(event => this._proxy.$onFileSystemChange(handle, event.map(ExtHostFileSystem._fromFileEvent)));
}
return {
dispose: () => {
Expand All @@ -91,6 +91,30 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
};
}

private static _fromFileEvent(event: vscode.FileChange): IFileChangeDto {
let { resource, type } = event;

let interalType: files.FileChangeType;
switch (type) {
case FileChangeType.Added:
case FileChangeType.Created:
interalType = files.FileChangeType.ADDED;
break;
case FileChangeType.Changed:
case FileChangeType.Updated:
interalType = files.FileChangeType.UPDATED;
break;
case FileChangeType.Deleted:
interalType = files.FileChangeType.DELETED;
break;
}

return {
resource,
type: interalType
};
}

registerSearchProvider(scheme: string, provider: vscode.SearchProvider) {
const handle = this._handlePool++;
this._searchProvider.set(handle, provider);
Expand All @@ -103,10 +127,10 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
};
}

$utimes(handle: number, resource: UriComponents, mtime: number, atime: number): TPromise<IStat, any> {
$utimes(handle: number, resource: UriComponents, mtime: number, atime: number): TPromise<files.IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).utimes(URI.revive(resource), mtime, atime));
}
$stat(handle: number, resource: UriComponents): TPromise<IStat, any> {
$stat(handle: number, resource: UriComponents): TPromise<files.IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).stat(URI.revive(resource)));
}
$read(handle: number, session: number, offset: number, count: number, resource: UriComponents): TPromise<number> {
Expand All @@ -127,13 +151,13 @@ export class ExtHostFileSystem implements ExtHostFileSystemShape {
$unlink(handle: number, resource: UriComponents): TPromise<void, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).unlink(URI.revive(resource)));
}
$move(handle: number, resource: UriComponents, target: UriComponents): TPromise<IStat, any> {
$move(handle: number, resource: UriComponents, target: UriComponents): TPromise<files.IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).move(URI.revive(resource), URI.revive(target)));
}
$mkdir(handle: number, resource: UriComponents): TPromise<IStat, any> {
$mkdir(handle: number, resource: UriComponents): TPromise<files.IStat, any> {
return asWinJsPromise(token => this._fsProvider.get(handle).mkdir(URI.revive(resource)));
}
$readdir(handle: number, resource: UriComponents): TPromise<[UriComponents, IStat][], any> {
$readdir(handle: number, resource: UriComponents): TPromise<[UriComponents, files.IStat][], any> {
return asWinJsPromise(token => this._fsProvider.get(handle).readdir(URI.revive(resource)));
}
$rmdir(handle: number, resource: UriComponents): TPromise<void, any> {
Expand Down
17 changes: 10 additions & 7 deletions src/vs/workbench/api/node/extHostTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1813,15 +1813,18 @@ export enum LogLevel {
//#region file api
// todo@remote
export enum FileChangeType {
Updated = 0,
Added = 1,
Deleted = 2
}
Changed = 1,
Updated = 1,

Created = 2,
Added = 2,

Deleted = 3,
}
export enum FileType {
File = 0,
Dir = 1,
Symlink = 2
File = 1,
Dir = 2,
Symlink = 64
}

//#endregion
Expand Down

0 comments on commit 2f16d38

Please sign in to comment.