diff --git a/src/vs/workbench/browser/web.main.ts b/src/vs/workbench/browser/web.main.ts index 807ac56d8f09f8403b879b4aa88052f5145c7351..94e7052574f1d74789e1b2084e8062673a9a5a95 100644 --- a/src/vs/workbench/browser/web.main.ts +++ b/src/vs/workbench/browser/web.main.ts @@ -10,8 +10,7 @@ import { ILogService, ConsoleLogService, MultiplexLogService } from 'vs/platform import { Disposable } from 'vs/base/common/lifecycle'; import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; import { Workbench } from 'vs/workbench/browser/workbench'; -import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { REMOTE_FILE_SYSTEM_CHANNEL_NAME, RemoteFileSystemProvider } from 'vs/platform/remote/common/remoteAgentFileSystemChannel'; +import { RemoteFileSystemProvider } from 'vs/workbench/services/remote/common/remoteAgentFileSystemChannel'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IProductService } from 'vs/platform/product/common/productService'; import product from 'vs/platform/product/common/product'; @@ -244,8 +243,7 @@ class BrowserMain extends Disposable { if (connection) { // Remote file system - const channel = connection.getChannel(REMOTE_FILE_SYSTEM_CHANNEL_NAME); - const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(channel, remoteAgentService.getEnvironment())); + const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService)); fileService.registerProvider(Schemas.vscodeRemote, remoteFileSystemProvider); if (!this.configuration.userDataProvider) { diff --git a/src/vs/workbench/electron-browser/desktop.main.ts b/src/vs/workbench/electron-browser/desktop.main.ts index 0163678d7fd077f0cad7d669c4927b4d54bab6f9..9b4db895695b57396b7ea88dc7d09cf96540005a 100644 --- a/src/vs/workbench/electron-browser/desktop.main.ts +++ b/src/vs/workbench/electron-browser/desktop.main.ts @@ -42,8 +42,7 @@ import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteA import { FileService } from 'vs/platform/files/common/fileService'; import { IFileService } from 'vs/platform/files/common/files'; import { DiskFileSystemProvider } from 'vs/platform/files/electron-browser/diskFileSystemProvider'; -import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { REMOTE_FILE_SYSTEM_CHANNEL_NAME, RemoteFileSystemProvider } from 'vs/platform/remote/common/remoteAgentFileSystemChannel'; +import { RemoteFileSystemProvider } from 'vs/workbench/services/remote/common/remoteAgentFileSystemChannel'; import { ConfigurationCache } from 'vs/workbench/services/configuration/node/configurationCache'; import { SpdLogService } from 'vs/platform/log/node/spdlogService'; import { SignService } from 'vs/platform/sign/node/signService'; @@ -216,8 +215,7 @@ class DesktopMain extends Disposable { const connection = remoteAgentService.getConnection(); if (connection) { - const channel = connection.getChannel(REMOTE_FILE_SYSTEM_CHANNEL_NAME); - const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(channel, remoteAgentService.getEnvironment())); + const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService)); fileService.registerProvider(Schemas.vscodeRemote, remoteFileSystemProvider); } diff --git a/src/vs/platform/remote/common/remoteAgentFileSystemChannel.ts b/src/vs/workbench/services/remote/common/remoteAgentFileSystemChannel.ts similarity index 93% rename from src/vs/platform/remote/common/remoteAgentFileSystemChannel.ts rename to src/vs/workbench/services/remote/common/remoteAgentFileSystemChannel.ts index 77e8b56d79cf29ce810952f18565c66650e9bff3..71da8dc93e3df27ba7e4b35fa63db796377a4133 100644 --- a/src/vs/platform/remote/common/remoteAgentFileSystemChannel.ts +++ b/src/vs/workbench/services/remote/common/remoteAgentFileSystemChannel.ts @@ -10,7 +10,7 @@ import { generateUuid } from 'vs/base/common/uuid'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { FileChangeType, FileDeleteOptions, FileOverwriteOptions, FileSystemProviderCapabilities, FileType, IFileChange, IStat, IWatchOptions, FileOpenOptions, IFileSystemProviderWithFileReadWriteCapability, FileWriteOptions, IFileSystemProviderWithFileReadStreamCapability, IFileSystemProviderWithFileFolderCopyCapability, FileReadStreamOptions, IFileSystemProviderWithOpenReadWriteCloseCapability } from 'vs/platform/files/common/files'; import { VSBuffer } from 'vs/base/common/buffer'; -import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment'; +import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { OperatingSystem } from 'vs/base/common/platform'; import { newWriteableStream, ReadableStreamEvents, ReadableStreamEventPayload } from 'vs/base/common/stream'; import { CancellationToken } from 'vs/base/common/cancellation'; @@ -31,6 +31,7 @@ export class RemoteFileSystemProvider extends Disposable implements IFileSystemProviderWithFileFolderCopyCapability { private readonly session: string = generateUuid(); + private readonly channel: IChannel; private readonly _onDidChange = this._register(new Emitter()); readonly onDidChangeFile = this._onDidChange.event; @@ -44,11 +45,14 @@ export class RemoteFileSystemProvider extends Disposable implements private _capabilities!: FileSystemProviderCapabilities; get capabilities(): FileSystemProviderCapabilities { return this._capabilities; } - constructor(private readonly channel: IChannel, environment: Promise) { + constructor(remoteAgentService: IRemoteAgentService) { super(); + const connection = remoteAgentService.getConnection()!; + this.channel = connection.getChannel(REMOTE_FILE_SYSTEM_CHANNEL_NAME); + this.setCaseSensitive(true); - environment.then(remoteAgentEnvironment => this.setCaseSensitive(!!(remoteAgentEnvironment && remoteAgentEnvironment.os === OperatingSystem.Linux))); + remoteAgentService.getEnvironment().then(remoteAgentEnvironment => this.setCaseSensitive(!!(remoteAgentEnvironment && remoteAgentEnvironment.os === OperatingSystem.Linux))); this.registerListeners(); }