add shortcut between file system provider and consumer

When a file system is implemented and used within the same extension host we can short cut some calls, e.g skip going through the renderer and stay within the extension host
This commit is contained in:
Johannes Rieken
2021-11-08 12:05:48 +01:00
parent 3b2089f7b4
commit e1612baf96
4 changed files with 117 additions and 18 deletions

View File

@@ -91,6 +91,7 @@ import { matchesScheme } from 'vs/platform/opener/common/opener';
import { ExtHostNotebookEditors } from 'vs/workbench/api/common/extHostNotebookEditors';
import { ExtHostNotebookDocuments } from 'vs/workbench/api/common/extHostNotebookDocuments';
import { ExtHostInteractive } from 'vs/workbench/api/common/extHostInteractive';
import { combinedDisposable } from 'vs/base/common/lifecycle';
export interface IExtensionApiFactory {
(extension: IExtensionDescription, registry: ExtensionDescriptionRegistry, configProvider: ExtHostConfigProvider): typeof vscode;
@@ -913,7 +914,10 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I
return extHostTask.registerTaskProvider(extension, type, provider);
},
registerFileSystemProvider(scheme, provider, options) {
return extHostFileSystem.registerFileSystemProvider(extension.identifier, scheme, provider, options);
return combinedDisposable(
extHostFileSystem.registerFileSystemProvider(extension.identifier, scheme, provider, options),
extHostConsumerFileSystem.addFileSystemProvider(scheme, provider)
);
},
get fs() {
return extHostConsumerFileSystem.value;