mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 19:44:25 +01:00
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user