diff --git a/extensions/ipynb/src/cellAttachmentRenderer.ts b/extensions/ipynb/src/cellAttachmentRenderer.ts index 262df2cb572..102b5e297ca 100644 --- a/extensions/ipynb/src/cellAttachmentRenderer.ts +++ b/extensions/ipynb/src/cellAttachmentRenderer.ts @@ -20,10 +20,9 @@ export async function activate(ctx: RendererContext) { // addCellAttachmentRendering(md); // const originalRender = md.render; - md.renderInline = function () { + md.render = function () { const outputInfo = arguments[1].outputItem; - const text = outputInfo.text(); let markdownText = outputInfo.mime.startsWith('text/x-') ? `\`\`\`${outputInfo.mime.substr(7)}\n${text}\n\`\`\`` : (outputInfo.mime.startsWith('application/') ? `\`\`\`${outputInfo.mime.substr(12)}\n${text}\n\`\`\`` : text); diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts index a3f275365dd..fc6500ceba8 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts @@ -1650,6 +1650,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditorD content: model.getText(), offset: offset, visible: false, + metadata: model.metadata, }); } @@ -2587,6 +2588,7 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditorD content: cell.getText(), offset: cellTop + top, visible: true, + metadata: cell.metadata, }); } diff --git a/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewMessages.ts b/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewMessages.ts index 4888d56bd8f..08b8489dcb3 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewMessages.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewMessages.ts @@ -5,6 +5,7 @@ import type { RenderOutputType } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; import type { PreloadOptions } from 'vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads'; +import { NotebookCellMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon'; interface BaseToWebviewMessage { readonly __vscode_notebook_message: true; @@ -329,6 +330,7 @@ export interface IMarkupCellInitialization { content: string; offset: number; visible: boolean; + metadata: NotebookCellMetadata; } export interface IInitializeMarkupCells { diff --git a/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts b/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts index f0eb46d08bb..dea460bd27d 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts @@ -6,6 +6,7 @@ import type { Event } from 'vs/base/common/event'; import type { IDisposable } from 'vs/base/common/lifecycle'; import type * as webviewMessages from 'vs/workbench/contrib/notebook/browser/view/renderers/webviewMessages'; +import { NotebookCellMetadata } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import type * as rendererApi from 'vscode-notebook-renderer'; // !! IMPORTANT !! ---------------------------------------------------------------------------------- @@ -1435,7 +1436,7 @@ async function webviewPreloads(ctx: PreloadContext) { return existing; } - const cell = new MarkupCell(init.cellId, init.mime, init.content, top); + const cell = new MarkupCell(init.cellId, init.mime, init.content, top, init.metadata); cell.element.style.visibility = visible ? 'visible' : 'hidden'; this._markupCells.set(init.cellId, cell); @@ -1634,7 +1635,7 @@ async function webviewPreloads(ctx: PreloadContext) { /// Internal field that holds text content private _content: { readonly value: string; readonly version: number }; - constructor(id: string, mime: string, content: string, top: number) { + constructor(id: string, mime: string, content: string, top: number, metadata: NotebookCellMetadata) { this.id = id; this._content = { value: content, version: 0 }; @@ -1645,7 +1646,7 @@ async function webviewPreloads(ctx: PreloadContext) { this.outputItem = Object.freeze({ id, mime, - metadata: undefined, + metadata, text: (): string => { return this._content.value;