Skip to content

Commit

Permalink
pref: reuse EncodedTokenMetadata from @shikijs/vscode-textmate
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Sep 1, 2024
1 parent cc80c37 commit b0f3bb7
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 170 deletions.
7 changes: 3 additions & 4 deletions packages/core/src/highlight/code-to-tokens-base.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
/* ---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*-------------------------------------------------------- */
import { INITIAL } from '@shikijs/vscode-textmate'
import { EncodedTokenMetadata, INITIAL } from '@shikijs/vscode-textmate'
import type { IGrammar, IRawThemeSetting, StateStack } from '@shikijs/vscode-textmate'
import type { CodeToTokensBaseOptions, FontStyle, ShikiInternal, ThemeRegistrationResolved, ThemedToken, ThemedTokenScopeExplanation, TokenizeWithThemeOptions } from '../types'
import { applyColorReplacements, isNoneTheme, isPlainLang, resolveColorReplacements, splitLines } from '../utils'
import { ShikiError } from '../error'
import { GrammarState, getGrammarStack } from '../textmate/grammar-state'
import { StackElementMetadata } from '../textmate/stack-element-metadata'
import { tokenizeAnsiWithTheme } from './code-to-tokens-ansi'

/**
Expand Down Expand Up @@ -166,10 +165,10 @@ function _tokenizeWithTheme(

const metadata = result.tokens[2 * j + 1]
const color = applyColorReplacements(
colorMap[StackElementMetadata.getForeground(metadata)],
colorMap[EncodedTokenMetadata.getForeground(metadata)],
colorReplacements,
)
const fontStyle: FontStyle = StackElementMetadata.getFontStyle(metadata)
const fontStyle: FontStyle = EncodedTokenMetadata.getFontStyle(metadata)

const token: ThemedToken = {
content: line.substring(startIndex, nextStartIndex),
Expand Down
9 changes: 8 additions & 1 deletion packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ export { createWasmOnigEngine, loadWasm } from './engines/wasm'
export { createJavaScriptRegexEngine } from './engines/javascript'

// TextMate Utilities
export { StackElementMetadata } from './textmate/stack-element-metadata'
export { normalizeTheme } from './textmate/normalize-theme'

// Low-level Highlighting
Expand All @@ -27,3 +26,11 @@ export { codeToTokensWithThemes } from './highlight/code-to-tokens-themes'
export * from './utils'
export { transformerDecorations } from './transformer-decorations'
export { ShikiError } from './error'

// Deprecated
export {
/**
* @deprecated Use `EncodedTokenMetadata` from `@shikijs/vscode-textmate` instead.
*/
EncodedTokenMetadata as StackElementMetadata,
} from '@shikijs/vscode-textmate'
148 changes: 0 additions & 148 deletions packages/core/src/textmate/stack-element-metadata.ts

This file was deleted.

5 changes: 2 additions & 3 deletions packages/monaco/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import type monacoNs from 'monaco-editor-core'
import type { ShikiInternal, ThemeRegistrationResolved } from '@shikijs/core'
import type { StateStack } from '@shikijs/vscode-textmate'
import { INITIAL } from '@shikijs/vscode-textmate'
import { StackElementMetadata } from '@shikijs/core'
import { EncodedTokenMetadata, INITIAL } from '@shikijs/vscode-textmate'

export interface MonacoTheme extends monacoNs.editor.IStandaloneThemeData {}

Expand Down Expand Up @@ -132,7 +131,7 @@ export function shikiToMonaco(
for (let j = 0; j < tokensLength; j++) {
const startIndex = result.tokens[2 * j]
const metadata = result.tokens[2 * j + 1]
const color = normalizeColor(colorMap[StackElementMetadata.getForeground(metadata)] || '')
const color = normalizeColor(colorMap[EncodedTokenMetadata.getForeground(metadata)] || '')
// Because Monaco only support one scope per token,
// we workaround this to use color to trace back the scope
const scope = findScopeByColor(color) || ''
Expand Down
26 changes: 13 additions & 13 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ catalog:
'@rollup/plugin-node-resolve': ^15.2.3
'@rollup/plugin-replace': ^5.0.7
'@rollup/plugin-terser': ^0.4.4
'@shikijs/vscode-textmate': ^9.1.1
'@shikijs/vscode-textmate': ^9.2.0
'@types/fs-extra': ^11.0.4
'@types/hast': ^3.0.4
'@types/markdown-it': ^14.1.2
Expand Down

0 comments on commit b0f3bb7

Please sign in to comment.