Files
azuredatastudio/src/vs/workbench/api/browser/mainThreadNotebookRenderers.ts

30 lines
1.6 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { Disposable } from 'vs/base/common/lifecycle';
import { ExtHostContext, ExtHostNotebookRenderersShape, MainThreadNotebookRenderersShape } from 'vs/workbench/api/common/extHost.protocol';
import { IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers';
import { INotebookRendererMessagingService } from 'vs/workbench/contrib/notebook/common/notebookRendererMessagingService';
// @extHostNamedCustomer(MainContext.MainThreadNotebookRenderers) {{SQL CARBON EDIT}} Disable VS Code notebooks
export class MainThreadNotebookRenderers extends Disposable implements MainThreadNotebookRenderersShape {
private readonly proxy: ExtHostNotebookRenderersShape;
constructor(
extHostContext: IExtHostContext,
@INotebookRendererMessagingService private readonly messaging: INotebookRendererMessagingService,
) {
super();
this.proxy = extHostContext.getProxy(ExtHostContext.ExtHostNotebookRenderers);
this._register(messaging.onShouldPostMessage(e => {
this.proxy.$postRendererMessage(e.editorId, e.rendererId, e.message);
}));
}
$postMessage(editorId: string | undefined, rendererId: string, message: unknown): Promise<boolean> {
return this.messaging.receiveMessage(editorId, rendererId, message);
}
}