@@ -284,28 +284,33 @@ export class NotebookOptions extends Disposable {
284
284
return ;
285
285
}
286
286
287
- const options = this . codeEditorService . resolveDecorationOptions ( e , true ) ;
288
- if ( options . afterContentClassName || options . beforeContentClassName ) {
289
- const cssRules = this . codeEditorService . resolveDecorationCSSRules ( e ) ;
290
- if ( cssRules !== null ) {
291
- for ( let i = 0 ; i < cssRules . length ; i ++ ) {
292
- // The following ways to index into the list are equivalent
293
- if (
294
- ( ( cssRules [ i ] as CSSStyleRule ) . selectorText . endsWith ( '::after' ) || ( cssRules [ i ] as CSSStyleRule ) . selectorText . endsWith ( '::after' ) )
295
- && ( cssRules [ i ] as CSSStyleRule ) . cssText . indexOf ( 'top:' ) > - 1
296
- ) {
297
- // there is a `::before` or `::after` text decoration whose position is above or below current line
298
- // we at least make sure that the editor top padding is at least one line
299
- const editorOptions = this . configurationService . getValue < IEditorOptions > ( 'editor' ) ;
300
- updateEditorTopPadding ( BareFontInfo . createFromRawSettings ( editorOptions , PixelRatio . getInstance ( this . targetWindow ) . value ) . lineHeight + 2 ) ;
301
- decorationTriggeredAdjustment = true ;
302
- break ;
287
+ try {
288
+ const options = this . codeEditorService . resolveDecorationOptions ( e , true ) ;
289
+ if ( options . afterContentClassName || options . beforeContentClassName ) {
290
+ const cssRules = this . codeEditorService . resolveDecorationCSSRules ( e ) ;
291
+ if ( cssRules !== null ) {
292
+ for ( let i = 0 ; i < cssRules . length ; i ++ ) {
293
+ // The following ways to index into the list are equivalent
294
+ if (
295
+ ( ( cssRules [ i ] as CSSStyleRule ) . selectorText . endsWith ( '::after' ) || ( cssRules [ i ] as CSSStyleRule ) . selectorText . endsWith ( '::after' ) )
296
+ && ( cssRules [ i ] as CSSStyleRule ) . cssText . indexOf ( 'top:' ) > - 1
297
+ ) {
298
+ // there is a `::before` or `::after` text decoration whose position is above or below current line
299
+ // we at least make sure that the editor top padding is at least one line
300
+ const editorOptions = this . configurationService . getValue < IEditorOptions > ( 'editor' ) ;
301
+ updateEditorTopPadding ( BareFontInfo . createFromRawSettings ( editorOptions , PixelRatio . getInstance ( this . targetWindow ) . value ) . lineHeight + 2 ) ;
302
+ decorationTriggeredAdjustment = true ;
303
+ break ;
304
+ }
303
305
}
304
306
}
305
307
}
308
+
309
+ decorationCheckSet . add ( e ) ;
310
+ } catch ( _ex ) {
311
+ // do not throw and break notebook
306
312
}
307
313
308
- decorationCheckSet . add ( e ) ;
309
314
} ;
310
315
this . _register ( this . codeEditorService . onDecorationTypeRegistered ( onDidAddDecorationType ) ) ;
311
316
this . codeEditorService . listDecorationTypes ( ) . forEach ( onDidAddDecorationType ) ;
0 commit comments