Files
qwen-code/packages/web-shell/client/components/artifacts/pierre-highlighter.ts
T
a8eb74fdf5 fix(web-shell): polish files and trim preview resources (#14143)
* fix(web-shell): polish files and trim preview resources

* test(cli): observe pending child Hook promises

* fix(web-shell): address Files browser review findings

* fix(vscode): sync Pierre modification notices

* chore: ignore the repo-local .pnpm-store fallback directory

pnpm falls back to a project-local store at .pnpm-store/ when the global
store directory is not writable (e.g. sandboxed CI runners). It is a
regenerable cache that node_modules hard-links into; its thousands of
untracked files otherwise dirty the working tree and fail deterministic
workspace-clean verification.

Co-authored-by: Qwen-Coder <[email protected]>

* fix(web-shell): address Pierre preview and file display review findings

- getPreviewLanguage folds case on the extension only, so README.MD and
  config.YML highlight while whole-name detector keys (Gemfile, BUILD)
  keep their case-sensitive behavior
- formatFileName strips the full Default_Ignorable_Code_Point class so
  zero-advance Hangul fillers and variation selectors cannot desync the
  tree search projection from the rendered name
- pin the previously unwitnessed pierre-build guards: redirected Shiki
  subpaths count toward the 4 MiB budget, getModuleInfo may return null
  for redirected ids, emitted assets are skipped, and entry-module
  resolveId calls carry no importer
- pin the theme name->module mapping with exact token colors and give
  the formatFileName display sites discriminating coverage with
  repeated-space names

---------

Co-authored-by: 钉萁 <[email protected]>
Co-authored-by: qwen-code[bot] <qwen-code[bot]@users.noreply.github.com>
Co-authored-by: Qwen-Coder <[email protected]>
Co-authored-by: qwen-code-dev-bot <[email protected]>
2026-10-16 16:45:56 +08:00

27 lines
795 B
TypeScript

import {
createBundledHighlighter,
createSingletonShorthands,
} from 'shiki-files/core';
import { createJavaScriptRegexEngine } from 'shiki-files/engine/javascript';
import { bundledLanguages, bundledThemes } from './pierre-resources';
/** @internal */
export {
createCssVariablesTheme,
getTokenStyleObject,
stringifyTokenStyle,
} from 'shiki-files/core';
/** @internal */
export { createOnigurumaEngine } from 'shiki-files/engine/oniguruma';
/** @internal */
export { createJavaScriptRegexEngine, bundledLanguages };
/** @internal */
export const createHighlighter = createBundledHighlighter({
langs: bundledLanguages,
themes: bundledThemes,
engine: createJavaScriptRegexEngine,
});
/** @internal */
export const { codeToHtml } = createSingletonShorthands(createHighlighter);