• Will Chen's avatar
    Use specific languages for shiki (#1938) · 1ce39958
    Will Chen 提交于
    <!-- CURSOR_SUMMARY -->
    > [!NOTE]
    > Refactors code highlighting to use react-shiki/core with a singleton
    highlighter and preloaded langs/themes, adds a fallback renderer, bumps
    react-shiki, and adds tests for message summarization.
    > 
    > - **Frontend**
    > - **CodeHighlight** (`src/components/chat/CodeHighlight.tsx`): Replace
    `useShikiHighlighter` with `ShikiHighlighter` from `react-shiki/core`
    using a singleton `createHighlighterCore` and JS regex engine; preload
    common languages and GitHub light/dark themes; add `<pre><code>`
    fallback while loading.
    > - **Tests**
    > - Add/expand Vitest suite for `formatMessagesForSummary`
    (`src/__tests__/formatMessagesForSummary.test.ts`): covers truncation,
    ordering, special chars, undefined content, and edge cases.
    > - **Dependencies**
    >   - Upgrade `react-shiki` to `^0.9.0` in `package.json`.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    b32d224cd21d3c76e77799f2995905e523406bf9. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    
    
    
    
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Preloaded a specific set of Shiki languages and themes using react-shiki
    core, and updated CodeHighlight to use a singleton highlighter. This
    reduces bundle size and stabilizes code rendering with a simple fallback
    while loading.
    
    - **Refactors**
    - Switched to react-shiki/core with ShikiHighlighter and a singleton
    highlighter.
    - Preloaded common languages
    (js/ts/jsx/tsx/html/css/json/markdown/python/etc.) and GitHub light/dark
    themes.
    - Used the JavaScript regex engine and added a plain <pre><code>
    fallback until the highlighter is ready.
    
    - **Dependencies**
      - Upgraded react-shiki to ^0.9.0.
    
    <sup>Written for commit b32d224cd21d3c76e77799f2995905e523406bf9.
    Summary will update automatically on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    1ce39958