Johannes Rieken
2021-08-27 11:47:22 +02:00
parent 794dc834fe
commit f5ce7996ae
6 changed files with 111 additions and 27 deletions

View File

@@ -4,6 +4,8 @@
*--------------------------------------------------------------------------------------------*/
import { Schemas } from 'vs/base/common/network';
import { ExtUri, IExtUri } from 'vs/base/common/resources';
import { FileSystemProviderCapabilities } from 'vs/platform/files/common/files';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { ExtHostFileSystemInfoShape } from 'vs/workbench/api/common/extHost.protocol';
@@ -14,6 +16,23 @@ export class ExtHostFileSystemInfo implements ExtHostFileSystemInfoShape {
private readonly _systemSchemes = new Set(Object.keys(Schemas));
private readonly _providerInfo = new Map<string, number>();
readonly extUri: IExtUri;
constructor() {
this.extUri = new ExtUri(uri => {
const capabilities = this._providerInfo.get(uri.scheme);
if (capabilities === undefined) {
// default: not ignore
return false;
}
if (capabilities & FileSystemProviderCapabilities.PathCaseSensitive) {
// configured as case sensitive
return false;
}
return true;
});
}
$acceptProviderInfos(scheme: string, capabilities: number | null): void {
if (capabilities === null) {
this._providerInfo.delete(scheme);
@@ -31,5 +50,7 @@ export class ExtHostFileSystemInfo implements ExtHostFileSystemInfoShape {
}
}
export interface IExtHostFileSystemInfo extends ExtHostFileSystemInfo { }
export interface IExtHostFileSystemInfo extends ExtHostFileSystemInfo {
readonly extUri: IExtUri;
}
export const IExtHostFileSystemInfo = createDecorator<IExtHostFileSystemInfo>('IExtHostFileSystemInfo');