mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-25 09:06:21 +01:00
fix #105925.
This commit is contained in:
@@ -52,6 +52,7 @@ import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/plat
|
||||
import { IJSONSchema } from 'vs/base/common/jsonSchema';
|
||||
import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||
|
||||
// Editor Contribution
|
||||
|
||||
@@ -72,7 +73,6 @@ import 'vs/workbench/contrib/notebook/browser/diff/notebookDiffActions';
|
||||
import 'vs/workbench/contrib/notebook/browser/view/output/transforms/streamTransform';
|
||||
import 'vs/workbench/contrib/notebook/browser/view/output/transforms/errorTransform';
|
||||
import 'vs/workbench/contrib/notebook/browser/view/output/transforms/richTransform';
|
||||
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
|
||||
|
||||
/*--------------------------------------------------------------------------------------------- */
|
||||
|
||||
@@ -98,6 +98,42 @@ Registry.as<IEditorRegistry>(EditorExtensions.Editors).registerEditor(
|
||||
]
|
||||
);
|
||||
|
||||
class NotebookDiffEditorFactory implements IEditorInputFactory {
|
||||
canSerialize(): boolean {
|
||||
return true;
|
||||
}
|
||||
|
||||
serialize(input: EditorInput): string {
|
||||
assertType(input instanceof NotebookDiffEditorInput);
|
||||
return JSON.stringify({
|
||||
resource: input.resource,
|
||||
originalResource: input.originalResource,
|
||||
name: input.name,
|
||||
originalName: input.originalName,
|
||||
viewType: input.viewType,
|
||||
});
|
||||
}
|
||||
|
||||
deserialize(instantiationService: IInstantiationService, raw: string) {
|
||||
type Data = { resource: URI, originalResource: URI, name: string, originalName: string, viewType: string, group: number };
|
||||
const data = <Data>parse(raw);
|
||||
if (!data) {
|
||||
return undefined;
|
||||
}
|
||||
const { resource, originalResource, name, originalName, viewType } = data;
|
||||
if (!data || !URI.isUri(resource) || !URI.isUri(originalResource) || typeof name !== 'string' || typeof originalName !== 'string' || typeof viewType !== 'string') {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const input = NotebookDiffEditorInput.create(instantiationService, resource, name, originalResource, originalName, viewType);
|
||||
return input;
|
||||
}
|
||||
|
||||
static canResolveBackup(editorInput: IEditorInput, backupResource: URI): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
class NotebookEditorFactory implements IEditorInputFactory {
|
||||
canSerialize(): boolean {
|
||||
return true;
|
||||
@@ -160,6 +196,11 @@ Registry.as<IEditorInputFactoryRegistry>(EditorInputExtensions.EditorInputFactor
|
||||
NotebookEditorFactory
|
||||
);
|
||||
|
||||
Registry.as<IEditorInputFactoryRegistry>(EditorInputExtensions.EditorInputFactories).registerEditorInputFactory(
|
||||
NotebookDiffEditorInput.ID,
|
||||
NotebookDiffEditorFactory
|
||||
);
|
||||
|
||||
function getFirstNotebookInfo(notebookService: INotebookService, uri: URI): NotebookProviderInfo | undefined {
|
||||
return notebookService.getContributedNotebookProviders(uri)[0];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user