display unknown text mime outputs as plain text (#203849)

This commit is contained in:
Aaron Munger 2024-01-31 08:51:41 -08:00 committed by GitHub
parent 98332892fd
commit ef40932ae9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 7 deletions

View File

@ -515,6 +515,11 @@ export const activate: ActivationFunction<void> = (ctx) => {
}
break;
default:
if (outputInfo.mime.indexOf('text/') > -1) {
disposables.get(outputInfo.id)?.dispose();
const disposable = renderText(outputInfo, element, latestContext);
disposables.set(outputInfo.id, disposable);
}
break;
}
if (element.querySelector('div')) {

View File

@ -200,18 +200,23 @@ class CellOutputElement extends Disposable {
return undefined;
}
const pickedMimeTypeRenderer = mimeTypes[pick];
const innerContainer = this._generateInnerOutputContainer(previousSibling, pickedMimeTypeRenderer);
const selectedPresentation = mimeTypes[pick];
let renderer = this.notebookService.getRendererInfo(selectedPresentation.rendererId);
if (!renderer && selectedPresentation.mimeType.indexOf('text/') > -1) {
renderer = this.notebookService.getRendererInfo('vscode.builtin-renderer');
}
const innerContainer = this._generateInnerOutputContainer(previousSibling, selectedPresentation);
this._attachToolbar(innerContainer, notebookTextModel, this.notebookEditor.activeKernel, index, mimeTypes);
this.renderedOutputContainer = DOM.append(innerContainer, DOM.$('.rendered-output'));
const renderer = this.notebookService.getRendererInfo(pickedMimeTypeRenderer.rendererId);
this.renderResult = renderer
? { type: RenderOutputType.Extension, renderer, source: this.output, mimeType: pickedMimeTypeRenderer.mimeType }
: this._renderMissingRenderer(this.output, pickedMimeTypeRenderer.mimeType);
this.output.pickedMimeType = pickedMimeTypeRenderer;
this.renderResult = renderer
? { type: RenderOutputType.Extension, renderer, source: this.output, mimeType: selectedPresentation.mimeType }
: this._renderMissingRenderer(this.output, selectedPresentation.mimeType);
this.output.pickedMimeType = selectedPresentation;
if (!this.renderResult) {
this.viewCell.updateOutputHeight(index, 0, 'CellOutputElement#renderResultUndefined');