Skip to content

Commit 77d5768

Browse files
author
Benjamin Pasero
committed
files - introduce IFileStat.isFile() for microsoft#84524
1 parent 5ae52b6 commit 77d5768

5 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/vs/platform/files/common/fileService.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ export class FileService extends Disposable implements IFileService {
217217
const fileStat: IFileStat = {
218218
resource,
219219
name: getBaseLabel(resource),
220+
isFile: (stat.type & FileType.File) !== 0,
220221
isDirectory: (stat.type & FileType.Directory) !== 0,
221222
isSymbolicLink: (stat.type & FileType.SymbolicLink) !== 0,
222223
isReadonly: !!(provider.capabilities & FileSystemProviderCapabilities.Readonly),

src/vs/platform/files/common/files.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -635,14 +635,19 @@ export interface IBaseStatWithMetadata extends IBaseStat {
635635
export interface IFileStat extends IBaseStat {
636636

637637
/**
638-
* The resource is a directory
638+
* The resource is a file.
639+
*/
640+
isFile: boolean;
641+
642+
/**
643+
* The resource is a directory.
639644
*/
640645
isDirectory: boolean;
641646

642647
/**
643648
* The resource is a symbolic link.
644649
*/
645-
isSymbolicLink?: boolean;
650+
isSymbolicLink: boolean;
646651

647652
/**
648653
* The children of the file stat or undefined if none.

src/vs/platform/files/test/node/diskFileService.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ suite('Disk File Service', function () {
218218
const resolved = await service.resolve(resource);
219219

220220
assert.equal(resolved.name, 'index.html');
221+
assert.equal(resolved.isFile, true);
222+
assert.equal(resolved.isDirectory, false);
223+
assert.equal(resolved.isSymbolicLink, false);
221224
assert.equal(resolved.resource.toString(), resource.toString());
222225
assert.equal(resolved.children, undefined);
223226
assert.ok(resolved.mtime! > 0);

src/vs/workbench/services/textfile/common/textFileEditorModel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements ITextFil
403403
ctime: content.ctime,
404404
size: content.size,
405405
etag: content.etag,
406+
isFile: true,
406407
isDirectory: false,
407408
isSymbolicLink: false,
408409
isReadonly: content.isReadonly

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,9 @@ export class TestFileService implements IFileService {
975975
encoding: 'utf8',
976976
mtime: Date.now(),
977977
size: 42,
978+
isFile: true,
978979
isDirectory: false,
980+
isSymbolicLink: false,
979981
name: resources.basename(resource)
980982
});
981983
}
@@ -1038,7 +1040,9 @@ export class TestFileService implements IFileService {
10381040
mtime: Date.now(),
10391041
ctime: Date.now(),
10401042
size: 42,
1043+
isFile: true,
10411044
isDirectory: false,
1045+
isSymbolicLink: false,
10421046
name: resources.basename(resource)
10431047
}));
10441048
}

0 commit comments

Comments
 (0)