@shikijs/core 1.16.0 → 1.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,198 +1,4 @@
1
- interface IOnigCaptureIndex {
2
- start: number;
3
- end: number;
4
- length: number;
5
- }
6
- interface IOnigMatch {
7
- index: number;
8
- captureIndices: IOnigCaptureIndex[];
9
- }
10
- declare const enum FindOption {
11
- None = 0,
12
- /**
13
- * equivalent of ONIG_OPTION_NOT_BEGIN_STRING: (str) isn't considered as begin of string (* fail \A)
14
- */
15
- NotBeginString = 1,
16
- /**
17
- * equivalent of ONIG_OPTION_NOT_END_STRING: (end) isn't considered as end of string (* fail \z, \Z)
18
- */
19
- NotEndString = 2,
20
- /**
21
- * equivalent of ONIG_OPTION_NOT_BEGIN_POSITION: (start) isn't considered as start position of search (* fail \G)
22
- */
23
- NotBeginPosition = 4,
24
- /**
25
- * used for debugging purposes.
26
- */
27
- DebugCall = 8
28
- }
29
- interface OnigScanner {
30
- findNextMatchSync(string: string | OnigString, startPosition: number, options: OrMask<FindOption>): IOnigMatch | null;
31
- dispose?(): void;
32
- }
33
- interface OnigString {
34
- readonly content: string;
35
- dispose?(): void;
36
- }
37
-
38
- /**
39
- * A union of given const enum values.
40
- */
41
- type OrMask<T extends number> = number;
42
- /**
43
- * Identifiers with a binary dot operator.
44
- * Examples: `baz` or `foo.bar`
45
- */
46
- type ScopeName = string;
47
- /**
48
- * An expression language of ScopePathStr with a binary comma (to indicate alternatives) operator.
49
- * Examples: `foo.bar boo.baz,quick quack`
50
- */
51
- type ScopePattern = string;
52
- /**
53
- * A TextMate theme.
54
- */
55
- interface IRawTheme {
56
- readonly name?: string;
57
- readonly settings: IRawThemeSetting[];
58
- }
59
- /**
60
- * A single theme setting.
61
- */
62
- interface IRawThemeSetting {
63
- readonly name?: string;
64
- readonly scope?: ScopePattern | ScopePattern[];
65
- readonly settings: {
66
- readonly fontStyle?: string;
67
- readonly foreground?: string;
68
- readonly background?: string;
69
- };
70
- }
71
-
72
- declare const ruleIdSymbol: unique symbol;
73
- type RuleId = {
74
- __brand: typeof ruleIdSymbol;
75
- };
76
-
77
- interface IRawGrammar extends ILocatable {
78
- repository: IRawRepository;
79
- readonly scopeName: ScopeName;
80
- readonly patterns: IRawRule[];
81
- readonly injections?: {
82
- [expression: string]: IRawRule;
83
- };
84
- readonly injectionSelector?: string;
85
- readonly fileTypes?: string[];
86
- readonly name?: string;
87
- readonly firstLineMatch?: string;
88
- }
89
- /**
90
- * Allowed values:
91
- * * Scope Name, e.g. `source.ts`
92
- * * Top level scope reference, e.g. `source.ts#entity.name.class`
93
- * * Relative scope reference, e.g. `#entity.name.class`
94
- * * self, e.g. `$self`
95
- * * base, e.g. `$base`
96
- */
97
- type IncludeString = string;
98
- type RegExpString = string;
99
- interface IRawRepositoryMap {
100
- [name: string]: IRawRule;
101
- $self: IRawRule;
102
- $base: IRawRule;
103
- }
104
- type IRawRepository = IRawRepositoryMap & ILocatable;
105
- interface IRawRule extends ILocatable {
106
- id?: RuleId;
107
- readonly include?: IncludeString;
108
- readonly name?: ScopeName;
109
- readonly contentName?: ScopeName;
110
- readonly match?: RegExpString;
111
- readonly captures?: IRawCaptures;
112
- readonly begin?: RegExpString;
113
- readonly beginCaptures?: IRawCaptures;
114
- readonly end?: RegExpString;
115
- readonly endCaptures?: IRawCaptures;
116
- readonly while?: RegExpString;
117
- readonly whileCaptures?: IRawCaptures;
118
- readonly patterns?: IRawRule[];
119
- readonly repository?: IRawRepository;
120
- readonly applyEndPatternLast?: boolean;
121
- }
122
- type IRawCaptures = IRawCapturesMap & ILocatable;
123
- interface IRawCapturesMap {
124
- [captureId: string]: IRawRule;
125
- }
126
- interface ILocation {
127
- readonly filename: string;
128
- readonly line: number;
129
- readonly char: number;
130
- }
131
- interface ILocatable {
132
- readonly $vscodeTextmateLocation?: ILocation;
133
- }
134
- /**
135
- * A grammar
136
- */
137
- interface IGrammar {
138
- /**
139
- * Tokenize `lineText` using previous line state `prevState`.
140
- */
141
- tokenizeLine(lineText: string, prevState: StateStack | null, timeLimit?: number): ITokenizeLineResult;
142
- /**
143
- * Tokenize `lineText` using previous line state `prevState`.
144
- * The result contains the tokens in binary format, resolved with the following information:
145
- * - language
146
- * - token type (regex, string, comment, other)
147
- * - font style
148
- * - foreground color
149
- * - background color
150
- * e.g. for getting the languageId: `(metadata & MetadataConsts.LANGUAGEID_MASK) >>> MetadataConsts.LANGUAGEID_OFFSET`
151
- */
152
- tokenizeLine2(lineText: string, prevState: StateStack | null, timeLimit?: number): ITokenizeLineResult2;
153
- }
154
- interface ITokenizeLineResult {
155
- readonly tokens: IToken[];
156
- /**
157
- * The `prevState` to be passed on to the next line tokenization.
158
- */
159
- readonly ruleStack: StateStack;
160
- /**
161
- * Did tokenization stop early due to reaching the time limit.
162
- */
163
- readonly stoppedEarly: boolean;
164
- }
165
- interface ITokenizeLineResult2 {
166
- /**
167
- * The tokens in binary format. Each token occupies two array indices. For token i:
168
- * - at offset 2*i => startIndex
169
- * - at offset 2*i + 1 => metadata
170
- *
171
- */
172
- readonly tokens: Uint32Array;
173
- /**
174
- * The `prevState` to be passed on to the next line tokenization.
175
- */
176
- readonly ruleStack: StateStack;
177
- /**
178
- * Did tokenization stop early due to reaching the time limit.
179
- */
180
- readonly stoppedEarly: boolean;
181
- }
182
- interface IToken {
183
- startIndex: number;
184
- readonly endIndex: number;
185
- readonly scopes: string[];
186
- }
187
- /**
188
- * **IMPORTANT** - Immutable!
189
- */
190
- interface StateStack {
191
- _stackElementBrand: void;
192
- readonly depth: number;
193
- clone(): StateStack;
194
- equals(other: StateStack): boolean;
195
- }
1
+ import { OnigScanner, OnigString } from '@shikijs/vscode-textmate';
196
2
 
197
3
  type Awaitable<T> = T | Promise<T>;
198
4
  type MaybeGetter<T> = Awaitable<MaybeModule<T>> | (() => Awaitable<MaybeModule<T>>);
@@ -243,6 +49,12 @@ interface JavaScriptRegexEngineOptions {
243
49
  * Cache for regex patterns.
244
50
  */
245
51
  cache?: Map<string, RegExp | Error>;
52
+ /**
53
+ * Custom pattern to RegExp constructor.
54
+ *
55
+ * By default `oniguruma-to-js` is used.
56
+ */
57
+ regexConstructor?: (pattern: string) => RegExp;
246
58
  }
247
59
 
248
- export type { Awaitable as A, IGrammar as I, JavaScriptRegexEngineOptions as J, LoadWasmOptions as L, MaybeArray as M, OnigurumaLoadOptions as O, PatternScanner as P, RequireKeys as R, StringLiteralUnion as S, WebAssemblyInstantiator as W, RegexEngine as a, MaybeGetter as b, IRawGrammar as c, IRawTheme as d, IRawThemeSetting as e, MaybeModule as f, RegexEngineString as g, WebAssemblyInstance as h, LoadWasmOptionsPlain as i, StateStack as j };
60
+ export type { Awaitable as A, JavaScriptRegexEngineOptions as J, LoadWasmOptions as L, MaybeArray as M, OnigurumaLoadOptions as O, PatternScanner as P, RequireKeys as R, StringLiteralUnion as S, WebAssemblyInstantiator as W, RegexEngine as a, MaybeGetter as b, MaybeModule as c, RegexEngineString as d, WebAssemblyInstance as e, LoadWasmOptionsPlain as f };
package/dist/index.d.mts CHANGED
@@ -1,8 +1,10 @@
1
- import { HighlighterCoreOptions, HighlighterCore, BundledHighlighterOptions, HighlighterGeneric, CreatedBundledHighlighterOptions, LanguageInput, ThemeInput, CodeToHastOptions, CodeToTokensOptions, TokensResult, CodeToTokensBaseOptions, ThemedToken, CodeToTokensWithThemesOptions, ThemedTokenWithVariants, GrammarState, ShikiInternal, FontStyle, ThemeRegistrationAny, ThemeRegistrationResolved, TokenizeWithThemeOptions, ShikiTransformerContextCommon, CodeToHastRenderOptions, ShikiTransformerContextSource, PlainTextLanguage, SpecialLanguage, SpecialTheme, TokenStyles, Position, ShikiTransformer } from './types.mjs';
2
- export { AnsiLanguage, BundledLanguageInfo, BundledThemeInfo, CodeOptionsMeta, CodeOptionsMultipleThemes, CodeOptionsSingleTheme, CodeOptionsThemes, CodeToHastOptionsCommon, CodeToHastRenderOptionsCommon, DecorationItem, DecorationOptions, DecorationTransformType, DynamicImportLanguageRegistration, DynamicImportThemeRegistration, Grammar, LanguageRegistration, Offset, OffsetOrPosition, ResolveBundleKey, ResolvedDecorationItem, ResolvedPosition, ShikiTransformerContext, ShikiTransformerContextMeta, ThemeRegistration, ThemeRegistrationRaw, ThemedTokenExplanation, ThemedTokenScopeExplanation, TokenBase, TransformerOptions } from './types.mjs';
3
- import { R as RequireKeys, L as LoadWasmOptions, a as RegexEngine, J as JavaScriptRegexEngineOptions, I as IGrammar, M as MaybeArray, b as MaybeGetter } from './chunk-engines.mjs';
4
- export { A as Awaitable, i as LoadWasmOptionsPlain, f as MaybeModule, O as OnigurumaLoadOptions, P as PatternScanner, c as RawGrammar, d as RawTheme, e as RawThemeSetting, g as RegexEngineString, S as StringLiteralUnion, h as WebAssemblyInstance, W as WebAssemblyInstantiator } from './chunk-engines.mjs';
1
+ import { HighlighterCoreOptions, HighlighterCore, BundledHighlighterOptions, HighlighterGeneric, CreatedBundledHighlighterOptions, LanguageInput, ThemeInput, CodeToHastOptions, CodeToTokensOptions, TokensResult, CodeToTokensBaseOptions, ThemedToken, CodeToTokensWithThemesOptions, ThemedTokenWithVariants, GrammarState, ShikiInternal, ThemeRegistrationAny, ThemeRegistrationResolved, TokenizeWithThemeOptions, ShikiTransformerContextCommon, CodeToHastRenderOptions, ShikiTransformerContextSource, PlainTextLanguage, SpecialLanguage, SpecialTheme, TokenStyles, Position, ShikiTransformer } from './types.mjs';
2
+ export { AnsiLanguage, BundledLanguageInfo, BundledThemeInfo, CodeOptionsMeta, CodeOptionsMultipleThemes, CodeOptionsSingleTheme, CodeOptionsThemes, CodeToHastOptionsCommon, CodeToHastRenderOptionsCommon, DecorationItem, DecorationOptions, DecorationTransformType, DynamicImportLanguageRegistration, DynamicImportThemeRegistration, FontStyle, Grammar, LanguageRegistration, Offset, OffsetOrPosition, ResolveBundleKey, ResolvedDecorationItem, ResolvedPosition, ShikiTransformerContext, ShikiTransformerContextMeta, ThemeRegistration, ThemeRegistrationRaw, ThemedTokenExplanation, ThemedTokenScopeExplanation, TokenBase, TransformerOptions } from './types.mjs';
3
+ import { R as RequireKeys, L as LoadWasmOptions, a as RegexEngine, J as JavaScriptRegexEngineOptions, M as MaybeArray, b as MaybeGetter } from './chunk-engines.mjs';
4
+ export { A as Awaitable, f as LoadWasmOptionsPlain, c as MaybeModule, O as OnigurumaLoadOptions, P as PatternScanner, d as RegexEngineString, S as StringLiteralUnion, e as WebAssemblyInstance, W as WebAssemblyInstantiator } from './chunk-engines.mjs';
5
5
  import { Root, RootContent, Nodes, Element } from 'hast';
6
+ import { IGrammar } from '@shikijs/vscode-textmate';
7
+ export { IRawGrammar as RawGrammar, IRawTheme as RawTheme, IRawThemeSetting as RawThemeSetting, EncodedTokenMetadata as StackElementMetadata } from '@shikijs/vscode-textmate';
6
8
 
7
9
  /**
8
10
  * Create a Shiki core highlighter instance, with no languages or themes bundled.
@@ -129,6 +131,10 @@ declare function loadWasm(options: LoadWasmOptions): Promise<void>;
129
131
 
130
132
  declare function createWasmOnigEngine(options?: LoadWasmOptions | null): Promise<RegexEngine>;
131
133
 
134
+ /**
135
+ * The default RegExp constructor for JavaScript regex engine.
136
+ */
137
+ declare function defaultJavaScriptRegexConstructor(pattern: string): RegExp;
132
138
  /**
133
139
  * Use the modern JavaScript RegExp engine to implement the OnigScanner.
134
140
  *
@@ -140,24 +146,6 @@ declare function createWasmOnigEngine(options?: LoadWasmOptions | null): Promise
140
146
  */
141
147
  declare function createJavaScriptRegexEngine(options?: JavaScriptRegexEngineOptions): RegexEngine;
142
148
 
143
- declare const enum TemporaryStandardTokenType {
144
- Other = 0,
145
- Comment = 1,
146
- String = 2,
147
- RegEx = 4,
148
- MetaEmbedded = 8
149
- }
150
- declare class StackElementMetadata {
151
- static toBinaryStr(metadata: number): string;
152
- static getLanguageId(metadata: number): number;
153
- static getTokenType(metadata: number): number;
154
- static getFontStyle(metadata: number): number;
155
- static getForeground(metadata: number): number;
156
- static getBackground(metadata: number): number;
157
- static containsBalancedBrackets(metadata: number): boolean;
158
- static set(metadata: number, languageId: number, tokenType: TemporaryStandardTokenType, fontStyle: FontStyle, foreground: number, background: number): number;
159
- }
160
-
161
149
  /**
162
150
  * Normalize a textmate theme to shiki theme
163
151
  */
@@ -486,4 +474,4 @@ declare class ShikiError extends Error {
486
474
  constructor(message: string);
487
475
  }
488
476
 
489
- export { BundledHighlighterOptions, CodeToHastOptions, CodeToHastRenderOptions, CodeToTokensBaseOptions, CodeToTokensOptions, CodeToTokensWithThemesOptions, type CreateHighlighterFactory, CreatedBundledHighlighterOptions, FontStyle, GrammarState, HighlighterCore, HighlighterCoreOptions, HighlighterGeneric, JavaScriptRegexEngineOptions, LanguageInput, LoadWasmOptions, MaybeArray, MaybeGetter, PlainTextLanguage, Position, RegexEngine, RequireKeys, ShikiError, ShikiInternal, ShikiTransformer, ShikiTransformerContextCommon, ShikiTransformerContextSource, type ShorthandsBundle, SpecialLanguage, SpecialTheme, StackElementMetadata, ThemeInput, ThemeRegistrationAny, ThemeRegistrationResolved, ThemedToken, ThemedTokenWithVariants, TokenStyles, TokenizeWithThemeOptions, TokensResult, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createHighlighterCoreSync, createJavaScriptRegexEngine, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createWasmOnigEngine, createdBundledHighlighter, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };
477
+ export { BundledHighlighterOptions, CodeToHastOptions, CodeToHastRenderOptions, CodeToTokensBaseOptions, CodeToTokensOptions, CodeToTokensWithThemesOptions, type CreateHighlighterFactory, CreatedBundledHighlighterOptions, GrammarState, HighlighterCore, HighlighterCoreOptions, HighlighterGeneric, JavaScriptRegexEngineOptions, LanguageInput, LoadWasmOptions, MaybeArray, MaybeGetter, PlainTextLanguage, Position, RegexEngine, RequireKeys, ShikiError, ShikiInternal, ShikiTransformer, ShikiTransformerContextCommon, ShikiTransformerContextSource, type ShorthandsBundle, SpecialLanguage, SpecialTheme, ThemeInput, ThemeRegistrationAny, ThemeRegistrationResolved, ThemedToken, ThemedTokenWithVariants, TokenStyles, TokenizeWithThemeOptions, TokensResult, addClassToHast, applyColorReplacements, codeToHast, codeToHtml, codeToTokens, codeToTokensBase, codeToTokensWithThemes, createHighlighterCore, createHighlighterCoreSync, createJavaScriptRegexEngine, createPositionConverter, createShikiInternal, createShikiInternalSync, createSingletonShorthands, createWasmOnigEngine, createdBundledHighlighter, defaultJavaScriptRegexConstructor, getHighlighterCore, getShikiInternal, getSingletonHighlighterCore, getTokenStyleObject, toHtml as hastToHtml, isNoneTheme, isPlainLang, isSpecialLang, isSpecialTheme, loadWasm, makeSingletonHighlighter, makeSingletonHighlighterCore, normalizeGetter, normalizeTheme, resolveColorReplacements, setDefaultWasmLoader, splitLines, splitToken, splitTokens, stringifyTokenStyle, toArray, tokenizeAnsiWithTheme, tokenizeWithTheme, tokensToHast, transformerDecorations };