devstar插件
This commit is contained in:
52
node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs
generated
vendored
Normal file
52
node_modules/@shikijs/engine-javascript/dist/engine-compile.mjs
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
import { toRegExp } from 'oniguruma-to-es';
|
||||
import { J as JavaScriptScanner } from './shared/engine-javascript.hzpS1_41.mjs';
|
||||
|
||||
function defaultJavaScriptRegexConstructor(pattern, options) {
|
||||
return toRegExp(
|
||||
pattern,
|
||||
{
|
||||
global: true,
|
||||
hasIndices: true,
|
||||
// This has no benefit for the standard JS engine, but it avoids a perf penalty for
|
||||
// precompiled grammars when constructing extremely long patterns that aren't always used
|
||||
lazyCompileLength: 3e3,
|
||||
rules: {
|
||||
// Needed since TextMate grammars merge backrefs across patterns
|
||||
allowOrphanBackrefs: true,
|
||||
// Improves search performance for generated regexes
|
||||
asciiWordBoundaries: true,
|
||||
// Follow `vscode-oniguruma` which enables this Oniguruma option by default
|
||||
captureGroup: true,
|
||||
// Oniguruma uses depth limit `20`; lowered here to keep regexes shorter and maybe
|
||||
// sometimes faster, but can be increased if issues reported due to low limit
|
||||
recursionLimit: 5,
|
||||
// Oniguruma option for `^`->`\A`, `$`->`\Z`; improves search performance without any
|
||||
// change in meaning since TM grammars search line by line
|
||||
singleline: true
|
||||
},
|
||||
...options
|
||||
}
|
||||
);
|
||||
}
|
||||
function createJavaScriptRegexEngine(options = {}) {
|
||||
const _options = Object.assign(
|
||||
{
|
||||
target: "auto",
|
||||
cache: /* @__PURE__ */ new Map()
|
||||
},
|
||||
options
|
||||
);
|
||||
_options.regexConstructor ||= (pattern) => defaultJavaScriptRegexConstructor(pattern, { target: _options.target });
|
||||
return {
|
||||
createScanner(patterns) {
|
||||
return new JavaScriptScanner(patterns, _options);
|
||||
},
|
||||
createString(s) {
|
||||
return {
|
||||
content: s
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor };
|
Reference in New Issue
Block a user