mirror of
https://github.com/microsoft/vscode.git
synced 2026-09-14 23:30:23 +01:00
use better name for async markdown rendering, https://github.com/microsoft/vscode/issues/67806
This commit is contained in:
@@ -28,7 +28,7 @@ export interface MarkedOptions extends marked.MarkedOptions {
|
||||
|
||||
export interface MarkdownRenderOptions extends FormattedTextRenderOptions {
|
||||
codeBlockRenderer?: (modeId: string, value: string) => Promise<HTMLElement>;
|
||||
codeBlockRenderCallback?: () => void;
|
||||
asyncRenderCallback?: () => void;
|
||||
baseUrl?: URI;
|
||||
}
|
||||
|
||||
@@ -177,8 +177,8 @@ export function renderMarkdown(markdown: IMarkdownString, options: MarkdownRende
|
||||
// ignore
|
||||
});
|
||||
|
||||
if (options.codeBlockRenderCallback) {
|
||||
promise.then(options.codeBlockRenderCallback);
|
||||
if (options.asyncRenderCallback) {
|
||||
promise.then(options.asyncRenderCallback);
|
||||
}
|
||||
|
||||
return `<div class="code" data-code="${id}">${escape(code)}</div>`;
|
||||
@@ -245,11 +245,11 @@ export function renderMarkdown(markdown: IMarkdownString, options: MarkdownRende
|
||||
signalInnerHTML!();
|
||||
|
||||
// signal size changes for image tags
|
||||
if (options.codeBlockRenderCallback) {
|
||||
if (options.asyncRenderCallback) {
|
||||
for (const img of element.getElementsByTagName('img')) {
|
||||
const listener = DOM.addDisposableListener(img, 'load', () => {
|
||||
listener.dispose();
|
||||
options.codeBlockRenderCallback!();
|
||||
options.asyncRenderCallback!();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,8 +38,8 @@ export class MarkdownRenderer {
|
||||
}
|
||||
});
|
||||
|
||||
private readonly _onDidRenderCodeBlock = new Emitter<void>();
|
||||
readonly onDidRenderCodeBlock = this._onDidRenderCodeBlock.event;
|
||||
private readonly _onDidRenderAsync = new Emitter<void>();
|
||||
readonly onDidRenderAsync = this._onDidRenderAsync.event;
|
||||
|
||||
constructor(
|
||||
private readonly _options: IMarkdownRendererOptions,
|
||||
@@ -48,7 +48,7 @@ export class MarkdownRenderer {
|
||||
) { }
|
||||
|
||||
dispose(): void {
|
||||
this._onDidRenderCodeBlock.dispose();
|
||||
this._onDidRenderAsync.dispose();
|
||||
}
|
||||
|
||||
render(markdown: IMarkdownString | undefined, options?: MarkdownRenderOptions, markedOptions?: MarkedOptions): IMarkdownRenderResult {
|
||||
@@ -103,7 +103,7 @@ export class MarkdownRenderer {
|
||||
|
||||
return element;
|
||||
},
|
||||
codeBlockRenderCallback: () => this._onDidRenderCodeBlock.fire(),
|
||||
asyncRenderCallback: () => this._onDidRenderAsync.fire(),
|
||||
actionHandler: {
|
||||
callback: (content) => this._openerService.open(content, { fromUserGesture: true }).catch(onUnexpectedError),
|
||||
disposeables
|
||||
|
||||
@@ -480,7 +480,7 @@ export class ModesContentHoverWidget extends ContentHoverWidget {
|
||||
const markdownHoverElement = $('div.hover-row.markdown-hover');
|
||||
const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));
|
||||
const renderer = markdownDisposeables.add(new MarkdownRenderer({ editor: this._editor }, this._modeService, this._openerService));
|
||||
markdownDisposeables.add(renderer.onDidRenderCodeBlock(() => {
|
||||
markdownDisposeables.add(renderer.onDidRenderAsync(() => {
|
||||
hoverContentsElement.className = 'hover-contents code-hover-contents';
|
||||
this._hover.onContentsChanged();
|
||||
}));
|
||||
|
||||
@@ -170,7 +170,7 @@ export class SuggestDetailsWidget {
|
||||
const renderedContents = this._markdownRenderer.render(documentation);
|
||||
this._docs.appendChild(renderedContents.element);
|
||||
this._renderDisposeable.add(renderedContents);
|
||||
this._renderDisposeable.add(this._markdownRenderer.onDidRenderCodeBlock(() => {
|
||||
this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(() => {
|
||||
this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight);
|
||||
this._onDidChangeContents.fire(this);
|
||||
}));
|
||||
|
||||
@@ -255,7 +255,7 @@ export class StatefulMarkdownCell extends Disposable {
|
||||
this.relayoutCell();
|
||||
} else {
|
||||
// first time, readonly mode
|
||||
this.localDisposables.add(markdownRenderer.onDidRenderCodeBlock(() => {
|
||||
this.localDisposables.add(markdownRenderer.onDidRenderAsync(() => {
|
||||
this.viewCell.renderedMarkdownHeight = this.templateData.container.clientHeight;
|
||||
this.relayoutCell();
|
||||
}));
|
||||
|
||||
@@ -94,7 +94,7 @@ export class HoverWidget extends Widget {
|
||||
callback: (content) => this._linkHandler(content),
|
||||
disposeables: this._messageListeners
|
||||
},
|
||||
codeBlockRenderCallback: () => {
|
||||
asyncRenderCallback: () => {
|
||||
contentsElement.classList.add('code-hover-contents');
|
||||
// This changes the dimensions of the hover so trigger a layout
|
||||
this._onRequestLayout.fire();
|
||||
|
||||
Reference in New Issue
Block a user