@@ -717,23 +717,29 @@ class NotebookAccessibleViewContribution extends Disposable {
717
717
const outputTextModel = viewCell . model . outputs [ i ] ;
718
718
const [ mimeTypes , pick ] = outputViewModel . resolveMimeTypes ( notebookEditor . textModel , undefined ) ;
719
719
const mimeType = mimeTypes [ pick ] . mimeType ;
720
- const pickedBuffer = outputTextModel . outputs . find ( output => output . mime === mimeType ) ?. data . buffer ;
720
+ let buffer = outputTextModel . outputs . find ( output => output . mime === mimeType ) ;
721
721
722
- let text = `${ mimeType } \n` ;
723
- if ( ! pickedBuffer || mimeType . startsWith ( 'image' ) ) {
724
- const altBuffer = outputTextModel . outputs . find ( output => ! output . mime . startsWith ( 'image' ) ) ?. data . buffer ;
725
- if ( altBuffer ) {
726
- text = decoder . decode ( altBuffer ) ;
722
+ if ( ! buffer || mimeType . startsWith ( 'image' ) ) {
723
+ buffer = outputTextModel . outputs . find ( output => ! output . mime . startsWith ( 'image' ) ) ;
724
+ }
725
+
726
+ let text = `${ mimeType } ` ; // default in case we can't get the text value for some reason.
727
+ if ( buffer ) {
728
+ const charLimit = 100_000 ;
729
+ text = decoder . decode ( buffer . data . slice ( 0 , charLimit ) . buffer ) ;
730
+
731
+ if ( buffer . data . byteLength > charLimit ) {
732
+ text = text + '...(truncated)' ;
733
+ }
734
+
735
+ if ( mimeType . endsWith ( 'error' ) ) {
736
+ text = text . replace ( / \\ u 0 0 1 b \[ [ 0 - 9 ; ] * m / gi, '' ) . replaceAll ( '\\n' , '\n' ) ;
727
737
}
728
- } else {
729
- text = decoder . decode ( pickedBuffer ) ;
730
738
}
739
+
731
740
const index = viewCell . outputsViewModels . length > 1
732
741
? `Cell output ${ i + 1 } of ${ viewCell . outputsViewModels . length } \n`
733
742
: '' ;
734
- if ( mimeType . endsWith ( 'error' ) ) {
735
- text = text . replace ( / \\ u 0 0 1 b \[ [ 0 - 9 ; ] * m / gi, '' ) . replaceAll ( '\\n' , '\n' ) ;
736
- }
737
743
outputContent = outputContent . concat ( `${ index } ${ text } \n` ) ;
738
744
}
739
745
0 commit comments