perf(plugin-shikiji): improve highlight whitespace
This commit is contained in:
parent
199bbd9a9a
commit
48a6596297
18
plugins/plugin-shikiji/src/node/utils/whitespace.ts
Normal file
18
plugins/plugin-shikiji/src/node/utils/whitespace.ts
Normal file
@ -0,0 +1,18 @@
|
||||
export const WHITESPACE_REGEXP = /:whitespace(?:=(all|boundary|trailing)?)?\b/
|
||||
export const NO_WHITESPACE_REGEXP = /:no-whitespace\b/
|
||||
|
||||
export type WhitespacePosition = 'all' | 'boundary' | 'trailing'
|
||||
|
||||
export function resolveWhitespacePosition(info: string, defaultPosition?: boolean | WhitespacePosition): WhitespacePosition | false {
|
||||
if (NO_WHITESPACE_REGEXP.test(info)) {
|
||||
return false
|
||||
}
|
||||
|
||||
defaultPosition = defaultPosition === true ? undefined : defaultPosition
|
||||
|
||||
const match = info.match(WHITESPACE_REGEXP)
|
||||
if (match) {
|
||||
return (match[1] || defaultPosition || 'all') as WhitespacePosition
|
||||
}
|
||||
return defaultPosition ?? false
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user