This removes the initial notebook renderer API and keeps the 'pure'
renderer API described in #102644 and hacked-in previously.
Remaining work in this area, in no particular order:
- Add messaging context to postMessage as requested by Don (API proposal TBA)
- Cleanups around how state is managed internally in the backLayerWebView
- Deprecate the renderer `viewType` in favor of calling it the `id` or `rendererId`
Q: I kept around some of the "transform" functions since the mime type
picking happens there, not sure if there's a better place for this
to happen now, or whether these methods should simply be renamed.
* notebooks: pipe renderer API postmessages to the renderer itself
Previously the postMessage on acquireNotebookRenderer API was just
a proxy to the global vscode postmessage. Now, it's linked to the
renderer and will cause an optional `onDidReceiveMessage` method on
the renderer to be called.
The message still _also_ goes to the global webview message handling
for advanced use cases, but this change allows the webview<->renderer
communication to be more nicely contained
and separate for most use cases.
* wip
* fixup! pr comments
Some API changes:
- I changed the second param of NotebookOutputRenderer.render to a
`NotebookRenderRequest` since we were up to four parameters already.
- The request contains a unique `outputId`, which is generated when
output is first created or restored (the ID is not stable if a
notebook is closed and reopened)
- I changed the renderer events to `onDidCreateOutput` and
`onWillDestroyOutput` since they're for outputs, not cells.
- Additionally, they're called with objects that contain the output
ID to render.