From 61d069cba330dff8d746a4e877b0bd60b73a1fbf Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 10 Apr 2019 21:13:44 +0200 Subject: [PATCH] Exploration --- src/vs/workbench/browser/nodeless.main.ts | 14 +++++++++++ .../remote/browser/remoteAgentServiceImpl.ts | 25 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/vs/workbench/services/remote/browser/remoteAgentServiceImpl.ts diff --git a/src/vs/workbench/browser/nodeless.main.ts b/src/vs/workbench/browser/nodeless.main.ts index c4140e914da..99dea67657e 100644 --- a/src/vs/workbench/browser/nodeless.main.ts +++ b/src/vs/workbench/browser/nodeless.main.ts @@ -10,10 +10,14 @@ import { ILogService } from 'vs/platform/log/common/log'; import { Disposable } from 'vs/base/common/lifecycle'; import { SimpleLogService, SimpleProductService, SimpleWorkbenchEnvironmentService } from 'vs/workbench/browser/nodeless.simpleservices'; import { Workbench } from 'vs/workbench/browser/workbench'; +import { IChannel } from 'vs/base/parts/ipc/common/ipc'; +import { REMOTE_FILE_SYSTEM_CHANNEL_NAME, RemoteExtensionsFileSystemProvider } from 'vs/platform/remote/common/remoteAgentFileSystemChannel'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IProductService } from 'vs/platform/product/common/product'; +import { RemoteAgentService } from 'vs/workbench/services/remote/browser/remoteAgentServiceImpl'; import { RemoteAuthorityResolverService } from 'vs/platform/remote/browser/remoteAuthorityResolverService'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; +import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { IFileService } from 'vs/platform/files/common/files'; import { FileService3 } from 'vs/workbench/services/files2/browser/fileService2'; @@ -69,10 +73,20 @@ class CodeRendererMain extends Disposable { const remoteAuthorityResolverService = new RemoteAuthorityResolverService(); serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService); + const remoteAgentService = this._register(new RemoteAgentService(environmentService, productService, remoteAuthorityResolverService)); + serviceCollection.set(IRemoteAgentService, remoteAgentService); + // Files const fileService = this._register(new FileService3(logService)); serviceCollection.set(IFileService, fileService); + const connection = remoteAgentService.getConnection(); + if (connection) { + const channel = connection.getChannel(REMOTE_FILE_SYSTEM_CHANNEL_NAME); + const remoteFileSystemProvider = this._register(new RemoteExtensionsFileSystemProvider(channel, remoteAgentService.getEnvironment())); + fileService.registerProvider('vscode-remote', remoteFileSystemProvider); + } + return { serviceCollection, logService }; } } diff --git a/src/vs/workbench/services/remote/browser/remoteAgentServiceImpl.ts b/src/vs/workbench/services/remote/browser/remoteAgentServiceImpl.ts new file mode 100644 index 00000000000..c2e838965b1 --- /dev/null +++ b/src/vs/workbench/services/remote/browser/remoteAgentServiceImpl.ts @@ -0,0 +1,25 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { IEnvironmentService } from 'vs/platform/environment/common/environment'; +import { IRemoteAgentConnection } from 'vs/workbench/services/remote/common/remoteAgentService'; +import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; +import { AbstractRemoteAgentService } from 'vs/workbench/services/remote/common/abstractRemoteAgentService'; +import { IProductService } from 'vs/platform/product/common/product'; + +export class RemoteAgentService extends AbstractRemoteAgentService { + + constructor( + @IEnvironmentService environmentService: IEnvironmentService, + @IProductService productService: IProductService, + @IRemoteAuthorityResolverService remoteAuthorityResolverService: IRemoteAuthorityResolverService + ) { + super(environmentService); + } + + getConnection(): IRemoteAgentConnection | null { + return null; + } +}