1- import type { ShikiTransformer , ThemedToken } from ' @shikijs/types'
2- import { getCommandColor } from ' ./command-colors'
1+ import type { ShikiTransformer , ThemedToken } from " @shikijs/types"
2+ import { getCommandColor } from " ./command-colors"
33
44interface ColorContentRange {
55 start : number
@@ -39,8 +39,11 @@ function detectRanges(code: string): MetaRanges {
3939
4040function splitTokenAtOffsets ( token : ThemedToken , breakpoints : number [ ] ) : ThemedToken [ ] {
4141 if ( ! breakpoints . length ) return [ token ]
42- const local = Array . from ( new Set ( breakpoints . filter ( bp => bp > token . offset && bp < token . offset + token . content . length ) ) )
43- . sort ( ( a , b ) => a - b )
42+ const local = Array . from (
43+ new Set (
44+ breakpoints . filter ( ( bp ) => bp > token . offset && bp < token . offset + token . content . length ) ,
45+ ) ,
46+ ) . sort ( ( a , b ) => a - b )
4447
4548 if ( ! local . length ) return [ token ]
4649
@@ -49,7 +52,11 @@ function splitTokenAtOffsets(token: ThemedToken, breakpoints: number[]): ThemedT
4952 for ( const bp of local ) {
5053 const idx = bp - token . offset
5154 if ( idx > last ) {
52- result . push ( { ...token , content : token . content . slice ( last , idx ) , offset : token . offset + last } )
55+ result . push ( {
56+ ...token ,
57+ content : token . content . slice ( last , idx ) ,
58+ offset : token . offset + last ,
59+ } )
5360 }
5461 last = idx
5562 }
@@ -63,7 +70,7 @@ export function transformerCommandColor(): ShikiTransformer {
6370 const map = new WeakMap < object , MetaRanges > ( )
6471
6572 return {
66- name : ' color-tags' ,
73+ name : " color-tags" ,
6774 preprocess ( code ) {
6875 const ranges = detectRanges ( code )
6976 const metaKey = ( this as unknown as { meta ?: object } ) . meta ?? { }
@@ -91,24 +98,28 @@ export function transformerCommandColor(): ShikiTransformer {
9198
9299 if ( ! bps . length ) return line
93100
94- const splitted = line . flatMap ( t => splitTokenAtOffsets ( t , bps ) )
101+ const splitted = line . flatMap ( ( t ) => splitTokenAtOffsets ( t , bps ) )
95102
96- const styled : ThemedToken [ ] = splitted . map ( seg => {
97- const inHide = ranges . hides . some ( r => r . start <= seg . offset && seg . offset + seg . content . length <= r . end )
103+ const styled : ThemedToken [ ] = splitted . map ( ( seg ) => {
104+ const inHide = ranges . hides . some (
105+ ( r ) => r . start <= seg . offset && seg . offset + seg . content . length <= r . end ,
106+ )
98107 if ( inHide ) {
99108 return {
100109 ...seg ,
101- htmlStyle : { ...( seg . htmlStyle || { } ) , display : ' none' } ,
110+ htmlStyle : { ...( seg . htmlStyle || { } ) , display : " none" } ,
102111 }
103112 }
104113
105- const contentRange = ranges . contents . find ( r => r . start <= seg . offset && seg . offset + seg . content . length <= r . end )
114+ const contentRange = ranges . contents . find (
115+ ( r ) => r . start <= seg . offset && seg . offset + seg . content . length <= r . end ,
116+ )
106117 if ( contentRange ) {
107118 const cfg = getCommandColor ( contentRange . color )
108119 if ( cfg ) {
109120 return {
110121 ...seg ,
111- htmlStyle : { ...( seg . htmlStyle || { } ) , color : cfg . hsl } ,
122+ htmlStyle : { ...( seg . htmlStyle || { } ) , color : cfg } ,
112123 }
113124 }
114125 }
0 commit comments