Skip to content

Commit 761242a

Browse files
authored
Mark some of the metadata as transient (#13723)
1 parent de1a7bc commit 761242a

File tree

3 files changed

+44
-4
lines changed

3 files changed

+44
-4
lines changed

src/client/common/application/notebook.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { inject, injectable } from 'inversify';
55
import { Disposable, Event, EventEmitter } from 'vscode';
66
import type {
77
notebook,
8+
NotebookCellMetadata,
89
NotebookCellsChangeEvent as VSCNotebookCellsChangeEvent,
910
NotebookContentProvider,
1011
NotebookDocument,
@@ -96,8 +97,15 @@ export class VSCodeNotebook implements IVSCodeNotebook {
9697
this.canUseNotebookApi = true;
9798
}
9899
}
99-
public registerNotebookContentProvider(notebookType: string, provider: NotebookContentProvider): Disposable {
100-
return this.notebook.registerNotebookContentProvider(notebookType, provider);
100+
public registerNotebookContentProvider(
101+
notebookType: string,
102+
provider: NotebookContentProvider,
103+
options?: {
104+
transientOutputs: boolean;
105+
transientMetadata: { [K in keyof NotebookCellMetadata]?: boolean };
106+
}
107+
): Disposable {
108+
return this.notebook.registerNotebookContentProvider(notebookType, provider, options);
101109
}
102110
public registerNotebookKernelProvider(
103111
selector: NotebookDocumentFilter,

src/client/common/application/types.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ import {
6060
} from 'vscode';
6161
import type {
6262
NotebookCellLanguageChangeEvent as VSCNotebookCellLanguageChangeEvent,
63+
NotebookCellMetadata,
6364
NotebookCellOutputsChangeEvent as VSCNotebookCellOutputsChangeEvent,
6465
NotebookCellsChangeEvent as VSCNotebookCellsChangeEvent,
6566
NotebookContentProvider,
@@ -1541,7 +1542,22 @@ export interface IVSCodeNotebook {
15411542
readonly onDidChangeNotebookDocument: Event<NotebookCellChangedEvent>;
15421543
readonly notebookEditors: Readonly<NotebookEditor[]>;
15431544
readonly activeNotebookEditor: NotebookEditor | undefined;
1544-
registerNotebookContentProvider(notebookType: string, provider: NotebookContentProvider): Disposable;
1545+
registerNotebookContentProvider(
1546+
notebookType: string,
1547+
provider: NotebookContentProvider,
1548+
options?: {
1549+
/**
1550+
* Controls if outputs change will trigger notebook document content change and if it will be used in the diff editor
1551+
* Default to false. If the content provider doesn't persisit the outputs in the file document, this should be set to true.
1552+
*/
1553+
transientOutputs: boolean;
1554+
/**
1555+
* Controls if a meetadata property change will trigger notebook document content change and if it will be used in the diff editor
1556+
* Default to false. If the content provider doesn't persisit a metadata property in the file document, it should be set to true.
1557+
*/
1558+
transientMetadata: { [K in keyof NotebookCellMetadata]?: boolean };
1559+
}
1560+
): Disposable;
15451561

15461562
registerNotebookKernelProvider(selector: NotebookDocumentFilter, provider: NotebookKernelProvider): Disposable;
15471563
}

src/client/datascience/notebook/integration.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,23 @@ export class NotebookIntegration implements IExtensionSingleActivationService {
5656
}
5757
try {
5858
this.disposables.push(
59-
this.vscNotebook.registerNotebookContentProvider(JupyterNotebookView, this.notebookContentProvider)
59+
this.vscNotebook.registerNotebookContentProvider(JupyterNotebookView, this.notebookContentProvider, {
60+
transientOutputs: false,
61+
transientMetadata: {
62+
breakpointMargin: true,
63+
editable: true,
64+
hasExecutionOrder: true,
65+
inputCollapsed: true,
66+
lastRunDuration: true,
67+
outputCollapsed: true,
68+
runStartTime: true,
69+
runnable: true,
70+
executionOrder: false,
71+
custom: false,
72+
runState: false,
73+
statusMessage: false
74+
}
75+
})
6076
);
6177
this.disposables.push(
6278
this.vscNotebook.registerNotebookKernelProvider(

0 commit comments

Comments
 (0)