Show error when markdown preview restore fails (#157566)

Fixes #155493
This commit is contained in:
Matt Bierner 2022-08-09 00:55:40 -07:00 committed by GitHub
parent 2ecea7fa70
commit 389938998f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,6 +15,10 @@ import { DynamicMarkdownPreview, IManagedMarkdownPreview, StaticMarkdownPreview
import { MarkdownPreviewConfigurationManager } from './previewConfig';
import { scrollEditorToLine, StartingScrollFragment } from './scrolling';
import { TopmostLineMonitor } from './topmostLineMonitor';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
export interface DynamicPreviewSettings {
readonly resourceColumn: vscode.ViewColumn;
@ -153,23 +157,59 @@ export class MarkdownPreviewManager extends Disposable implements vscode.Webview
webview: vscode.WebviewPanel,
state: any
): Promise<void> {
const resource = vscode.Uri.parse(state.resource);
const locked = state.locked;
const line = state.line;
const resourceColumn = state.resourceColumn;
try {
const resource = vscode.Uri.parse(state.resource);
const locked = state.locked;
const line = state.line;
const resourceColumn = state.resourceColumn;
const preview = await DynamicMarkdownPreview.revive(
{ resource, locked, line, resourceColumn },
webview,
this._contentProvider,
this._previewConfigurations,
this._workspace,
this._logger,
this._topmostLineMonitor,
this._contributions,
this._tocProvider);
const preview = DynamicMarkdownPreview.revive(
{ resource, locked, line, resourceColumn },
webview,
this._contentProvider,
this._previewConfigurations,
this._workspace,
this._logger,
this._topmostLineMonitor,
this._contributions,
this._tocProvider);
this.registerDynamicPreview(preview);
this.registerDynamicPreview(preview);
} catch (e) {
console.error(e);
webview.webview.html = /* html */`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- Disable pinch zooming -->
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<title>Markdown Preview</title>
<style>
html, body {
min-height: 100%;
height: 100%;
}
.error-container {
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
</style>
<meta http-equiv="Content-Security-Policy" content="default-src 'none';">
</head>
<body class="error-container">
<p>${localize('preview.restoreError', "An unexpected error occurred while restoring the Markdown preview.")}</p>
</body>
</html>`;
}
}
public async resolveCustomTextEditor(