File tree Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Expand file tree Collapse file tree 2 files changed +25
-2
lines changed Original file line number Diff line number Diff line change 11/**
22 * Create & register the token `Highlight`'s in the `CSS.highlights` registry.
33 * This enables the use of `::highlight(tokenType)` in CSS to style them.
4- * @param {Object } [languageTokens={}] - Language specific overwrites.
4+ *
5+ * @param {Array } [tokenTypes=[]] - Language token types
6+ * @param {Object } [options={}]
7+ * @param {Object } [options.languageTokens={}] - Language specific overwrites.
58 */
6- export function setupTokenHighlights ( tokenTypes , { languageTokens = { } } ) {
9+ export function setupTokenHighlights ( tokenTypes = [ ] , { languageTokens = { } } = { } ) {
710 const languageTokenTypes = Object . entries ( languageTokens ) . flatMap ( ( entry ) => {
811 const [ lang , tokenTypes ] = entry ;
912 return tokenTypes . map ( ( tokenType ) => `${ lang } -${ tokenType } ` ) ;
Original file line number Diff line number Diff line change 1+ import { expect , test } from 'vitest' ;
2+ import { setupTokenHighlights } from './utils' ;
3+
4+ const tokenTypes = [ 'token-type-1' , 'token-type-2' ] ;
5+
6+ test ( 'setupTokenHighlights' , async ( ) => {
7+ setupTokenHighlights ( tokenTypes ) ;
8+ for ( const tokenType of tokenTypes ) {
9+ expect ( CSS . highlights . get ( tokenType ) ) . toBeInstanceOf ( Highlight ) ;
10+ }
11+ } ) ;
12+
13+ test ( 'setupTokenHighlights - Language specific overwrites' , async ( ) => {
14+ const languageTokens = { css : [ 'important' ] , md : [ 'title' , 'list' ] } ;
15+ const languageTokenTypes = [ 'css-important' , 'md-title' , 'md-list' ] ;
16+ setupTokenHighlights ( tokenTypes , { languageTokens } ) ;
17+ for ( const tokenType of [ ...tokenTypes , ...languageTokenTypes ] ) {
18+ expect ( CSS . highlights . get ( tokenType ) ) . toBeInstanceOf ( Highlight ) ;
19+ }
20+ } ) ;
You can’t perform that action at this time.
0 commit comments