@@ -27,6 +27,13 @@ import { Position } from '../../../../common/core/position.js';
27
27
import { IVisibleRangeProvider } from '../textArea/textAreaEditContext.js' ;
28
28
import { PositionOffsetTransformer } from '../../../../common/core/positionToOffset.js' ;
29
29
30
+ // Corresponds to classes in nativeEditContext.css
31
+ enum CompositionClassName {
32
+ NONE = 'edit-context-composition-none' ,
33
+ SECONDARY = 'edit-context-composition-secondary' ,
34
+ PRIMARY = 'edit-context-composition-primary' ,
35
+ }
36
+
30
37
export class NativeEditContext extends AbstractEditContext {
31
38
32
39
public readonly domNode : FastDomNode < HTMLDivElement > ;
@@ -257,16 +264,21 @@ export class NativeEditContext extends AbstractEditContext {
257
264
const startPositionOfDecoration = textModel . getPositionAt ( offsetOfEditContextText + f . rangeStart ) ;
258
265
const endPositionOfDecoration = textModel . getPositionAt ( offsetOfEditContextText + f . rangeEnd ) ;
259
266
const decorationRange = Range . fromPositions ( startPositionOfDecoration , endPositionOfDecoration ) ;
260
- const classNames = [
261
- 'edit-context-format-decoration' ,
262
- `underline-style-${ f . underlineStyle . toLowerCase ( ) } ` ,
263
- `underline-thickness-${ f . underlineThickness . toLowerCase ( ) } ` ,
264
- ] ;
267
+ const thickness = f . underlineThickness . toLowerCase ( ) ;
268
+ let decorationClassName : string = CompositionClassName . NONE ;
269
+ switch ( thickness ) {
270
+ case 'thin' :
271
+ decorationClassName = CompositionClassName . SECONDARY ;
272
+ break ;
273
+ case 'thick' :
274
+ decorationClassName = CompositionClassName . PRIMARY ;
275
+ break ;
276
+ }
265
277
decorations . push ( {
266
278
range : decorationRange ,
267
279
options : {
268
280
description : 'textFormatDecoration' ,
269
- inlineClassName : classNames . join ( ' ' ) ,
281
+ inlineClassName : decorationClassName ,
270
282
}
271
283
} ) ;
272
284
} ) ;
0 commit comments