@@ -17,6 +17,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
1717import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility' ;
1818import { IRelativePattern } from 'vs/base/common/glob' ;
1919import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions' ;
20+ import { generateUuid } from 'vs/base/common/uuid' ;
2021
2122export class MainThreadNotebookDocument extends Disposable {
2223 private _textModel : NotebookTextModel ;
@@ -29,10 +30,11 @@ export class MainThreadNotebookDocument extends Disposable {
2930 private readonly _proxy : ExtHostNotebookShape ,
3031 public handle : number ,
3132 public viewType : string ,
32- public uri : URI
33+ public uri : URI ,
34+ public webviewId : string ,
3335 ) {
3436 super ( ) ;
35- this . _textModel = new NotebookTextModel ( handle , viewType , uri ) ;
37+ this . _textModel = new NotebookTextModel ( handle , viewType , uri , webviewId ) ;
3638 this . _register ( this . _textModel . onDidModelChange ( e => {
3739 this . _proxy . $acceptModelChanged ( this . uri , e ) ;
3840 } ) ) ;
@@ -121,8 +123,8 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
121123 this . _notebookService . unregisterNotebookRenderer ( handle ) ;
122124 }
123125
124- async $registerNotebookProvider ( extension : NotebookExtensionDescription , viewType : string ) : Promise < void > {
125- let controller = new MainThreadNotebookController ( this . _proxy , this , viewType ) ;
126+ async $registerNotebookProvider ( extension : NotebookExtensionDescription , viewType : string , hasKernelSupport : boolean ) : Promise < void > {
127+ let controller = new MainThreadNotebookController ( this . _proxy , this , viewType , hasKernelSupport ) ;
126128 this . _notebookProviders . set ( viewType , controller ) ;
127129 this . _notebookService . registerNotebookController ( viewType , extension , controller ) ;
128130 return ;
@@ -176,8 +178,8 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo
176178 controller ?. spliceNotebookCellOutputs ( resource , cellHandle , splices , renderers ) ;
177179 }
178180
179- async executeNotebook ( viewType : string , uri : URI , token : CancellationToken ) : Promise < void > {
180- return this . _proxy . $executeNotebook ( viewType , uri , undefined , token ) ;
181+ async executeNotebook ( viewType : string , uri : URI , useAttachedKernel : boolean , token : CancellationToken ) : Promise < void > {
182+ return this . _proxy . $executeNotebook ( viewType , uri , undefined , useAttachedKernel , token ) ;
181183 }
182184
183185 async $postMessage ( handle : number , value : any ) : Promise < boolean > {
@@ -203,7 +205,8 @@ export class MainThreadNotebookController implements IMainNotebookController {
203205 constructor (
204206 private readonly _proxy : ExtHostNotebookShape ,
205207 private _mainThreadNotebook : MainThreadNotebooks ,
206- private _viewType : string
208+ private _viewType : string ,
209+ readonly hasKernelSupport : boolean
207210 ) {
208211 }
209212
@@ -227,7 +230,7 @@ export class MainThreadNotebookController implements IMainNotebookController {
227230 return mainthreadNotebook . textModel ;
228231 }
229232
230- let document = new MainThreadNotebookDocument ( this . _proxy , MainThreadNotebookController . documentHandle ++ , viewType , uri ) ;
233+ let document = new MainThreadNotebookDocument ( this . _proxy , MainThreadNotebookController . documentHandle ++ , viewType , uri , generateUuid ( ) ) ;
231234 await this . createNotebookDocument ( document ) ;
232235
233236 if ( forBackup ) {
@@ -272,8 +275,8 @@ export class MainThreadNotebookController implements IMainNotebookController {
272275 mainthreadNotebook ?. textModel . $spliceNotebookCellOutputs ( cellHandle , splices ) ;
273276 }
274277
275- async executeNotebook ( viewType : string , uri : URI , token : CancellationToken ) : Promise < void > {
276- return this . _mainThreadNotebook . executeNotebook ( viewType , uri , token ) ;
278+ async executeNotebook ( viewType : string , uri : URI , useAttachedKernel : boolean , token : CancellationToken ) : Promise < void > {
279+ return this . _mainThreadNotebook . executeNotebook ( viewType , uri , useAttachedKernel , token ) ;
277280 }
278281
279282 onDidReceiveMessage ( uri : UriComponents , message : any ) : void {
@@ -287,6 +290,7 @@ export class MainThreadNotebookController implements IMainNotebookController {
287290 addedDocuments : [ {
288291 viewType : document . viewType ,
289292 handle : document . handle ,
293+ webviewId : document . webviewId ,
290294 uri : document . uri ,
291295 metadata : document . textModel . metadata
292296 } ]
@@ -327,8 +331,8 @@ export class MainThreadNotebookController implements IMainNotebookController {
327331 document ?. textModel . updateRenderers ( renderers ) ;
328332 }
329333
330- async executeNotebookCell ( uri : URI , handle : number , token : CancellationToken ) : Promise < void > {
331- return this . _proxy . $executeNotebook ( this . _viewType , uri , handle , token ) ;
334+ async executeNotebookCell ( uri : URI , handle : number , useAttachedKernel : boolean , token : CancellationToken ) : Promise < void > {
335+ return this . _proxy . $executeNotebook ( this . _viewType , uri , handle , useAttachedKernel , token ) ;
332336 }
333337
334338 async save ( uri : URI , token : CancellationToken ) : Promise < boolean > {
0 commit comments