@@ -183,6 +183,7 @@ export class InteractiveEditorWidget {
183
183
184
184
private _lastDim : Dimension | undefined ;
185
185
private _isLayouting : boolean = false ;
186
+ private _preferredExpansionState : ExpansionState | undefined ;
186
187
private _expansionState : ExpansionState = ExpansionState . NOT_CROPPED ;
187
188
188
189
constructor (
@@ -446,22 +447,44 @@ export class InteractiveEditorWidget {
446
447
return this . _expansionState ;
447
448
}
448
449
450
+ set preferredExpansionState ( expansionState : ExpansionState | undefined ) {
451
+ this . _preferredExpansionState = expansionState ;
452
+ }
453
+
449
454
updateMarkdownMessage ( message : Node | undefined ) {
450
455
this . _elements . markdownMessage . classList . toggle ( 'hidden' , ! message ) ;
456
+ let expansionState : ExpansionState ;
451
457
if ( ! message ) {
452
458
reset ( this . _elements . message ) ;
453
459
this . _ctxMessageCropState . reset ( ) ;
454
- this . _expansionState = ExpansionState . NOT_CROPPED ;
460
+ expansionState = ExpansionState . NOT_CROPPED ;
455
461
} else {
456
- this . _elements . message . style . webkitLineClamp = MESSAGE_CROPPED_NUMBER_LINES . toString ( ) ;
457
- reset ( this . _elements . message , message ) ;
458
- const expansionState = this . _elements . message . scrollHeight > this . _elements . message . clientHeight ? ExpansionState . CROPPED : ExpansionState . NOT_CROPPED ;
462
+ if ( this . _preferredExpansionState ) {
463
+ reset ( this . _elements . message , message ) ;
464
+ expansionState = this . _preferredExpansionState ;
465
+ this . _preferredExpansionState = undefined ;
466
+ } else {
467
+ this . _elements . message . style . webkitLineClamp = MESSAGE_CROPPED_NUMBER_LINES . toString ( ) ;
468
+ reset ( this . _elements . message , message ) ;
469
+ expansionState = this . _elements . message . scrollHeight > this . _elements . message . clientHeight ? ExpansionState . CROPPED : ExpansionState . NOT_CROPPED ;
470
+ }
459
471
this . _ctxMessageCropState . set ( expansionState ) ;
460
- this . _expansionState = expansionState ;
472
+ this . updateLineClamp ( expansionState ) ;
461
473
}
474
+ this . _expansionState = expansionState ;
475
+ this . _onDidChangeHeight . fire ( ) ;
476
+ }
477
+
478
+ updateMarkdownMessageExpansionState ( expansionState : ExpansionState ) {
479
+ this . _ctxMessageCropState . set ( expansionState ) ;
480
+ this . updateLineClamp ( expansionState ) ;
462
481
this . _onDidChangeHeight . fire ( ) ;
463
482
}
464
483
484
+ updateLineClamp ( expansionState : ExpansionState ) {
485
+ this . _elements . message . style . webkitLineClamp = expansionState === ExpansionState . NOT_CROPPED ? 'none' : ( expansionState === ExpansionState . EXPANDED ? MESSAGE_EXPANDED_NUMBER_LINES . toString ( ) : MESSAGE_CROPPED_NUMBER_LINES . toString ( ) ) ;
486
+ }
487
+
465
488
updateInfo ( message : string ) : void {
466
489
this . _elements . infoLabel . classList . toggle ( 'hidden' , ! message ) ;
467
490
this . _elements . infoLabel . innerText = message ;
@@ -510,13 +533,6 @@ export class InteractiveEditorWidget {
510
533
this . _inputEditor . focus ( ) ;
511
534
}
512
535
513
- updateMarkdownMessageExpansionState ( expansionState : ExpansionState ) {
514
- this . _ctxMessageCropState . set ( expansionState ) ;
515
- this . _expansionState = expansionState ;
516
- this . _elements . message . style . webkitLineClamp = expansionState === ExpansionState . NOT_CROPPED ? 'none' : ( expansionState === ExpansionState . EXPANDED ? MESSAGE_EXPANDED_NUMBER_LINES . toString ( ) : MESSAGE_CROPPED_NUMBER_LINES . toString ( ) ) ;
517
- this . _onDidChangeHeight . fire ( ) ;
518
- }
519
-
520
536
// --- preview
521
537
522
538
showEditsPreview ( textModelv0 : ITextModel , edits : ISingleEditOperation [ ] , changes : LineRangeMapping [ ] ) {
0 commit comments