mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-30 05:21:08 +01:00
merge renderer IPC into notebook controller, remove global renderer IPC
This commit is contained in:
@@ -38,8 +38,6 @@ export class MainThreadNotebookEditors implements MainThreadNotebookEditorsShape
|
||||
private readonly _proxy: ExtHostNotebookShape;
|
||||
private readonly _mainThreadEditors = new Map<string, MainThreadNotebook>();
|
||||
|
||||
private readonly _rendererIpcHandle = new Map<string, Set<number>>();
|
||||
|
||||
private _currentViewColumnInfo?: INotebookEditorViewColumnInfo;
|
||||
|
||||
constructor(
|
||||
@@ -90,16 +88,6 @@ export class MainThreadNotebookEditors implements MainThreadNotebookEditorsShape
|
||||
});
|
||||
}));
|
||||
|
||||
editorDisposables.add(editor.onDidReceiveMessage(e => {
|
||||
if (!e.forRenderer) {
|
||||
return;
|
||||
}
|
||||
const handles = this._rendererIpcHandle.get(e.forRenderer);
|
||||
if (handles) {
|
||||
this._proxy.$acceptEditorIpcMessage(editor.getId(), e.forRenderer, Array.from(handles), e.message);
|
||||
}
|
||||
}));
|
||||
|
||||
const wrapper = new MainThreadNotebook(editor, editorDisposables);
|
||||
this._mainThreadEditors.set(editor.getId(), wrapper);
|
||||
}
|
||||
@@ -143,49 +131,7 @@ export class MainThreadNotebookEditors implements MainThreadNotebookEditorsShape
|
||||
return editor.textModel.applyEdits(cellEdits, true, undefined, () => undefined, undefined);
|
||||
}
|
||||
|
||||
//#region --- IPC
|
||||
|
||||
async $addRendererIpc(rendererId: string, handle: number): Promise<void> {
|
||||
let set = this._rendererIpcHandle.get(rendererId);
|
||||
if (!set) {
|
||||
set = new Set();
|
||||
this._rendererIpcHandle.set(rendererId, set);
|
||||
}
|
||||
set.add(handle);
|
||||
}
|
||||
|
||||
$removeRendererIpc(rendererId: string, handle: number): void {
|
||||
let set = this._rendererIpcHandle.get(rendererId);
|
||||
if (set) {
|
||||
set.delete(handle);
|
||||
if (set.size === 0) {
|
||||
this._rendererIpcHandle.delete(rendererId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async $postRendererIpcMessage(rendererId: string, handle: number, editorId: string | undefined, message: unknown): Promise<boolean> {
|
||||
if (!this._rendererIpcHandle.get(rendererId)?.has(handle)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (editorId) {
|
||||
const candidate = this._mainThreadEditors.get(editorId);
|
||||
if (candidate) {
|
||||
candidate.editor.postMessage(rendererId, message);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (const { editor } of this._mainThreadEditors.values()) {
|
||||
editor.postMessage(rendererId, message);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
async $tryShowNotebookDocument(resource: UriComponents, viewType: string, options: INotebookDocumentShowOptions): Promise<string> {
|
||||
const editorOptions = new NotebookEditorOptions({
|
||||
|
||||
Reference in New Issue
Block a user