Closed
Description
Currently when opening a notebook after the window is opened, we will try to activate all extensions whose activation event is onNotebook:{VIEWTYPE}
synchronously, even if they are not accounted for serializing/deserializing the notebook. This caused a significant slow down of the first notebook opening.
Now that we have the ipynb serializer is part of the core, we should ensure the notebook file opening is fast and not blocked by any extension.
What happens now when opening an ipynb file with multiple notebook extensions installed, one example:
It spent 3 seconds in loading and activating Jupyter, Kusto and Julia extensions.
Proposal
- Upon request of opening a notebook, activate extension which contributes the exact notebook serializer and wait for it to finish.
- Request deserialization of the notebook resource
- Send activation events for
onNotebook:VIEWTYPE
andonNotebook:*
, fire and forget, noawait
. - Cell output render module should
activate
notebook extensions which contributes the impure notebook renderer prior to rendering the output.