notebooks: renderer messaging feedback

This commit is contained in:
Connor Peet
2021-07-21 10:11:53 -07:00
parent 889fc9ed82
commit 90aa979bb7
6 changed files with 21 additions and 13 deletions

View File

@@ -44,14 +44,15 @@ export class ExtHostNotebookRenderers implements ExtHostNotebookRenderersShape {
return this.getOrCreateEmitterFor(rendererId).event(wrappedListener, thisArg, disposables);
},
postMessage: (editorOrAlias, message) => {
const editor = notebookEditorVisible ? editorOrAlias : notebookEditorAliases.get(editorOrAlias);
const extHostEditor = editor && ExtHostNotebookEditor.apiEditorsToExtHost.get(editor);
if (!extHostEditor) {
throw new Error(`The first argument to postMessage() must be a NotebookEditor`);
postMessage: (message, editorOrAlias) => {
if (ExtHostNotebookEditor.apiEditorsToExtHost.has(message)) { // back compat for swapped args
[message, editorOrAlias] = [editorOrAlias, message];
}
return this.proxy.$postMessage(extHostEditor.id, rendererId, message);
const editor = notebookEditorVisible ? editorOrAlias : notebookEditorAliases.get(editorOrAlias!);
const extHostEditor = editor && ExtHostNotebookEditor.apiEditorsToExtHost.get(editor);
return this.proxy.$postMessage(extHostEditor?.id, rendererId, message);
},
};