diff --git a/src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts b/src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts index 23ea5e1d709273f88536de040d3a4841885931ec..0980eec33e53d0ad9d145eeeb69936d18a340ba7 100644 --- a/src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts +++ b/src/vs/workbench/services/remote/common/abstractRemoteAgentService.ts @@ -17,6 +17,7 @@ import { IWorkbenchContribution, IWorkbenchContributionsRegistry, Extensions } f import { Registry } from 'vs/platform/registry/common/platform'; import { RemoteExtensionEnvironmentChannelClient } from 'vs/workbench/services/remote/common/remoteAgentEnvironmentChannel'; import { INotificationService } from 'vs/platform/notification/common/notification'; +import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnosticsService'; export abstract class AbstractRemoteAgentService extends Disposable implements IRemoteAgentService { @@ -44,6 +45,16 @@ export abstract class AbstractRemoteAgentService extends Disposable implements I } return bail ? this._environment : this._environment.then(undefined, () => null); } + + getDiagnosticInfo(options: IDiagnosticInfoOptions): Promise { + const connection = this.getConnection(); + if (connection) { + const client = new RemoteExtensionEnvironmentChannelClient(connection.getChannel('remoteextensionsenvironment')); + return client.getDiagnosticInfo(options); + } + + return Promise.resolve(undefined); + } } export class RemoteAgentConnection extends Disposable implements IRemoteAgentConnection { diff --git a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts index a9ff1419bd7b8a010341abce774bb4dec448f16e..9d81eda2c6417bd3f9d3b994e13d4ba42259d2f6 100644 --- a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts +++ b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts @@ -8,6 +8,7 @@ import { URI, UriComponents } from 'vs/base/common/uri'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment'; +import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnosticsService'; export interface IGetEnvironmentDataArguments { language: string; @@ -58,4 +59,8 @@ export class RemoteExtensionEnvironmentChannelClient { }; }); } + + getDiagnosticInfo(options: IDiagnosticInfoOptions): Promise { + return this.channel.call('getDiagnosticInfo', options); + } } diff --git a/src/vs/workbench/services/remote/common/remoteAgentService.ts b/src/vs/workbench/services/remote/common/remoteAgentService.ts index d8ac4d6addd24721f512a7de59784c3a693d4e4b..5a097b98f1e3bdd72fb3aedebb70105e1d3405de 100644 --- a/src/vs/workbench/services/remote/common/remoteAgentService.ts +++ b/src/vs/workbench/services/remote/common/remoteAgentService.ts @@ -6,6 +6,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { RemoteAgentConnectionContext, IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment'; import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc'; +import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnosticsService'; export const RemoteExtensionLogFileName = 'remoteagent'; @@ -16,6 +17,7 @@ export interface IRemoteAgentService { getConnection(): IRemoteAgentConnection | null; getEnvironment(bail?: boolean): Promise; + getDiagnosticInfo(options: IDiagnosticInfoOptions): Promise; } export interface IRemoteAgentConnection {