stream-monaco 0.0.17 → 0.0.19

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.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ## stream-monaco
1
+ # stream-monaco
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/stream-monaco?color=a1b858&label=)](https://www.npmjs.com/package/stream-monaco)
4
4
  [![中文版](https://img.shields.io/badge/docs-中文文档-blue)](README.zh-CN.md)
@@ -6,6 +6,8 @@
6
6
  [![Bundle size](https://img.shields.io/bundlephobia/minzip/stream-monaco)](https://bundlephobia.com/package/stream-monaco)
7
7
  [![License](https://img.shields.io/npm/l/stream-monaco)](./LICENSE)
8
8
 
9
+ Streaming Monaco Editor integration with Shiki syntax highlighting. Framework-agnostic core for Vue, React, Svelte, Solid, Preact, and Vanilla JS.
10
+
9
11
  ### Introduction
10
12
 
11
13
  stream-monaco provides a framework-agnostic core for integrating Monaco Editor with Shiki syntax highlighting, optimized for streaming updates and efficient highlighting. It works great without Vue, while also offering a Vue-friendly API and examples.
@@ -362,6 +364,10 @@ const {
362
364
  languages: ['javascript', 'typescript'],
363
365
  readOnly: true,
364
366
  MAX_HEIGHT: 500,
367
+ // Collapse long unchanged regions automatically.
368
+ diffHideUnchangedRegions: true,
369
+ // Hover a changed hunk to show split upper/lower Revert/Stage actions.
370
+ diffHunkActionsOnHover: true,
365
371
  })
366
372
 
367
373
  const original = `export function add(a: number, b: number) {\n return a + b\n}`
@@ -378,6 +384,61 @@ onMounted(async () => {
378
384
  </template>
379
385
  ```
380
386
 
387
+ Diff UX options:
388
+
389
+ - `diffHideUnchangedRegions` (default `true`): fold unchanged ranges (can pass Monaco `hideUnchangedRegions` object).
390
+ - `diffHunkActionsOnHover` (default `false`): explicitly set `true` to enable split upper/lower `Revert` and `Stage` on hunk hover.
391
+ - `onDiffHunkAction(context)` (optional): return `false` to intercept and skip built-in model edits.
392
+
393
+ Example 1: enable unchanged folding + hover Revert/Stage
394
+
395
+ ```ts
396
+ const { createDiffEditor } = useMonaco({
397
+ themes: ['vitesse-dark', 'vitesse-light'],
398
+ languages: ['typescript'],
399
+ readOnly: true,
400
+ diffHideUnchangedRegions: {
401
+ enabled: true,
402
+ contextLineCount: 2,
403
+ minimumLineCount: 4,
404
+ revealLineCount: 2,
405
+ },
406
+ diffHunkActionsOnHover: true,
407
+ })
408
+
409
+ await createDiffEditor(container, original, modified, 'typescript')
410
+ ```
411
+
412
+ Example 2: fully intercept Revert/Stage and handle your own stash/patch flow
413
+
414
+ ```ts
415
+ useMonaco({
416
+ diffHideUnchangedRegions: true,
417
+ diffHunkActionsOnHover: true,
418
+ onDiffHunkAction: async (ctx) => {
419
+ const {
420
+ action, // 'revert' | 'stage'
421
+ side, // 'upper' | 'lower'
422
+ lineChange,
423
+ originalModel,
424
+ modifiedModel,
425
+ } = ctx
426
+
427
+ await saveHunkAction({
428
+ action,
429
+ side,
430
+ range: lineChange,
431
+ original: originalModel.getValue(),
432
+ modified: modifiedModel.getValue(),
433
+ })
434
+
435
+ // false => skip built-in edit, fully controlled by user code
436
+ // true/undefined => continue built-in edit
437
+ return false
438
+ },
439
+ })
440
+ ```
441
+
381
442
  ### Shiki highlighter (advanced)
382
443
 
383
444
  If you also render Shiki snippets outside Monaco:
package/README.zh-CN.md CHANGED
@@ -1,4 +1,4 @@
1
- ## stream-monaco
1
+ # stream-monaco
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/stream-monaco?color=a1b858&label=)](https://www.npmjs.com/package/stream-monaco)
4
4
  [![English Docs](https://img.shields.io/badge/docs-English-blue)](README.md)
@@ -6,6 +6,8 @@
6
6
  [![Bundle size](https://img.shields.io/bundlephobia/minzip/stream-monaco)](https://bundlephobia.com/package/stream-monaco)
7
7
  [![License](https://img.shields.io/npm/l/stream-monaco)](./LICENSE)
8
8
 
9
+ 流式更新版 Monaco Editor + Shiki 语法高亮,提供框架无关内核,适配 Vue、React、Svelte、Solid、Preact 与 Vanilla JS。
10
+
9
11
  ### 项目简介
10
12
 
11
13
  `stream-monaco` 提供一个与框架无关的内核来集成 Monaco 编辑器与 Shiki 语法高亮,针对流式更新与高效高亮做了优化;可在无 Vue 的环境下使用,同时也提供对 Vue 3 的友好支持与示例。
@@ -378,6 +380,10 @@ const {
378
380
  languages: ['javascript', 'typescript'],
379
381
  readOnly: true,
380
382
  MAX_HEIGHT: 500,
383
+ // 自动折叠大段未改动区域
384
+ diffHideUnchangedRegions: true,
385
+ // hover 变更块时显示上下分区的局部 Revert / Stage 操作
386
+ diffHunkActionsOnHover: true,
381
387
  })
382
388
 
383
389
  const original = `export function add(a: number, b: number) {\n return a + b\n}`
@@ -390,6 +396,62 @@ onMounted(async () => {
390
396
  })
391
397
  ```
392
398
 
399
+ Diff 体验增强相关配置:
400
+
401
+ - `diffHideUnchangedRegions`(默认 `true`):折叠未改动区块;也支持直接传 Monaco 的 `hideUnchangedRegions` 对象。
402
+ - `diffHunkActionsOnHover`(默认 `false`):仅在显式传 `true` 时,hover 变更 hunk 才会显示上下分区的 `Revert` / `Stage`。
403
+ - `onDiffHunkAction(context)`(可选):返回 `false` 可拦截并跳过内置模型编辑逻辑。
404
+
405
+ 示例 1:开启 hidden 区折叠 + hover Revert/Stage(可理解为局部回退与暂存)
406
+
407
+ ```ts
408
+ const { createDiffEditor } = useMonaco({
409
+ themes: ['vitesse-dark', 'vitesse-light'],
410
+ languages: ['typescript'],
411
+ readOnly: true,
412
+ diffHideUnchangedRegions: {
413
+ enabled: true,
414
+ contextLineCount: 2,
415
+ minimumLineCount: 4,
416
+ revealLineCount: 2,
417
+ },
418
+ diffHunkActionsOnHover: true,
419
+ })
420
+
421
+ await createDiffEditor(container, original, modified, 'typescript')
422
+ ```
423
+
424
+ 示例 2:完全接管 Revert/Stage 事件(接你自己的 stash / patch API)
425
+
426
+ ```ts
427
+ useMonaco({
428
+ diffHideUnchangedRegions: true,
429
+ diffHunkActionsOnHover: true,
430
+ onDiffHunkAction: async (ctx) => {
431
+ const {
432
+ action, // 'revert' | 'stage'
433
+ side, // 'upper' | 'lower'
434
+ lineChange,
435
+ originalModel,
436
+ modifiedModel,
437
+ } = ctx
438
+
439
+ // 这里接你的服务端逻辑,例如提交到 stash / patch 队列
440
+ await saveHunkAction({
441
+ action,
442
+ side,
443
+ range: lineChange,
444
+ original: originalModel.getValue(),
445
+ modified: modifiedModel.getValue(),
446
+ })
447
+
448
+ // 返回 false: 拦截内置编辑(由你完全接管)
449
+ // 返回 true/undefined: 继续执行内置编辑
450
+ return false
451
+ },
452
+ })
453
+ ```
454
+
393
455
  ### Shiki 高亮器(高级说明)
394
456
 
395
457
  如果你在页面上除了 Monaco 编辑器外还使用 Shiki 的 highlighter 单独渲染代码片段(例如静态 HTML 片段),推荐的做法是:
@@ -641,6 +703,10 @@ modified?.onDidChangeContent?.(() => { /* ... */ })
641
703
  | `autoScrollThresholdPx` | `number` | `32` | 自动滚动的像素阈值 |
642
704
  | `autoScrollThresholdLines` | `number` | `2` | 自动滚动的行数阈值 |
643
705
  | `diffAutoScroll` | `boolean` | `true` | 是否启用 Diff modified 侧自动滚动 |
706
+ | `diffHideUnchangedRegions` | `boolean \| object` | `true` | 是否折叠 Diff 中未改动区块(支持传 Monaco 配置对象) |
707
+ | `diffHunkActionsOnHover` | `boolean` | `false` | 是否启用 hover hunk 的上下分区局部 Revert / Stage(需显式开启) |
708
+ | `diffHunkHoverHideDelayMs` | `number` | `160` | hover 操作浮层离开后的隐藏延迟(毫秒) |
709
+ | `onDiffHunkAction` | `function` | - | hunk 操作回调(返回 `false` 可阻止默认编辑) |
644
710
 
645
711
  ##### 返回值
646
712
 
@@ -1,7 +1,7 @@
1
1
  import * as monaco_editor0 from "monaco-editor";
2
2
  import * as monaco$1 from "monaco-editor";
3
- import * as _monaco from "monaco-editor";
4
3
  import { Highlighter, SpecialTheme, ThemeInput } from "shiki";
4
+ import * as _monaco from "monaco-editor/esm/vs/editor/editor.api";
5
5
 
6
6
  //#region rolldown:runtime
7
7
  //#endregion
@@ -45,6 +45,31 @@ interface MonacoOptions extends monaco$1.editor.IStandaloneEditorConstructionOpt
45
45
  * 默认 true(与单编辑器体验保持一致)。
46
46
  */
47
47
  diffAutoScroll?: boolean;
48
+ /**
49
+ * Controls Monaco's diff unchanged-region folding behavior.
50
+ * - `true`: use stream-monaco defaults (enabled with compact context lines)
51
+ * - `false`: disable unchanged-region folding
52
+ * - object: forward to Monaco `hideUnchangedRegions`
53
+ *
54
+ * Default: `true`
55
+ */
56
+ diffHideUnchangedRegions?: boolean | NonNullable<monaco$1.editor.IDiffEditorConstructionOptions['hideUnchangedRegions']>;
57
+ /**
58
+ * Enable hover actions for each diff hunk split part (upper/lower):
59
+ * local `revert` and `stage`.
60
+ * Default: `false` (must be explicitly enabled).
61
+ */
62
+ diffHunkActionsOnHover?: boolean;
63
+ /**
64
+ * Hide delay (ms) for diff hunk hover action widgets after mouse leaves.
65
+ * Default: `160`.
66
+ */
67
+ diffHunkHoverHideDelayMs?: number;
68
+ /**
69
+ * Optional interception callback for hunk hover actions.
70
+ * Return `false` to prevent the built-in model edit behavior.
71
+ */
72
+ onDiffHunkAction?: (context: DiffHunkActionContext) => void | boolean;
48
73
  /**
49
74
  * Debounce time (ms) to coalesce multiple reveal requests into a single
50
75
  * reveal. Useful for streaming/append scenarios. Default: 75
@@ -105,6 +130,15 @@ declare enum RevealStrategy {
105
130
  CenterIfOutside = "centerIfOutside",
106
131
  Center = "center",
107
132
  }
133
+ type DiffHunkActionKind = 'revert' | 'stage';
134
+ type DiffHunkSide = 'upper' | 'lower';
135
+ interface DiffHunkActionContext {
136
+ action: DiffHunkActionKind;
137
+ side: DiffHunkSide;
138
+ lineChange: monaco$1.editor.ILineChange;
139
+ originalModel: monaco$1.editor.ITextModel;
140
+ modifiedModel: monaco$1.editor.ITextModel;
141
+ }
108
142
  //#endregion
109
143
  //#region src/code.detect.d.ts
110
144
  /**
@@ -141,8 +175,8 @@ declare const defaultRevealDebounceMs = 75;
141
175
  declare namespace monaco_shim_d_exports {
142
176
  export { monaco as default };
143
177
  }
144
- import * as import_monaco_editor from "monaco-editor";
145
- __reExport(monaco_shim_d_exports, import_monaco_editor);
178
+ import * as import_monaco_editor_esm_vs_editor_editor_api from "monaco-editor/esm/vs/editor/editor.api";
179
+ __reExport(monaco_shim_d_exports, import_monaco_editor_esm_vs_editor_editor_api);
146
180
  declare const monaco: typeof _monaco;
147
181
  //#endregion
148
182
  //#region src/utils/registerMonacoThemes.d.ts
@@ -286,4 +320,4 @@ declare function useMonaco(monacoOptions?: MonacoOptions): {
286
320
  } | null;
287
321
  };
288
322
  //#endregion
289
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco };
323
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco };
@@ -1,8 +1,8 @@
1
1
  import { __export, __reExport } from "./chunk-CHLpw0oG.js";
2
+ import * as _monaco from "monaco-editor/esm/vs/editor/editor.api";
3
+ import { Highlighter, SpecialTheme, ThemeInput } from "shiki";
2
4
  import * as monaco_editor0 from "monaco-editor";
3
5
  import * as monaco$1 from "monaco-editor";
4
- import * as _monaco from "monaco-editor";
5
- import { Highlighter, SpecialTheme, ThemeInput } from "shiki";
6
6
 
7
7
  //#region src/type.d.ts
8
8
  type ShikiHighlighter = Highlighter | any;
@@ -44,6 +44,31 @@ interface MonacoOptions extends monaco$1.editor.IStandaloneEditorConstructionOpt
44
44
  * 默认 true(与单编辑器体验保持一致)。
45
45
  */
46
46
  diffAutoScroll?: boolean;
47
+ /**
48
+ * Controls Monaco's diff unchanged-region folding behavior.
49
+ * - `true`: use stream-monaco defaults (enabled with compact context lines)
50
+ * - `false`: disable unchanged-region folding
51
+ * - object: forward to Monaco `hideUnchangedRegions`
52
+ *
53
+ * Default: `true`
54
+ */
55
+ diffHideUnchangedRegions?: boolean | NonNullable<monaco$1.editor.IDiffEditorConstructionOptions['hideUnchangedRegions']>;
56
+ /**
57
+ * Enable hover actions for each diff hunk split part (upper/lower):
58
+ * local `revert` and `stage`.
59
+ * Default: `false` (must be explicitly enabled).
60
+ */
61
+ diffHunkActionsOnHover?: boolean;
62
+ /**
63
+ * Hide delay (ms) for diff hunk hover action widgets after mouse leaves.
64
+ * Default: `160`.
65
+ */
66
+ diffHunkHoverHideDelayMs?: number;
67
+ /**
68
+ * Optional interception callback for hunk hover actions.
69
+ * Return `false` to prevent the built-in model edit behavior.
70
+ */
71
+ onDiffHunkAction?: (context: DiffHunkActionContext) => void | boolean;
47
72
  /**
48
73
  * Debounce time (ms) to coalesce multiple reveal requests into a single
49
74
  * reveal. Useful for streaming/append scenarios. Default: 75
@@ -104,6 +129,15 @@ declare enum RevealStrategy {
104
129
  CenterIfOutside = "centerIfOutside",
105
130
  Center = "center",
106
131
  }
132
+ type DiffHunkActionKind = 'revert' | 'stage';
133
+ type DiffHunkSide = 'upper' | 'lower';
134
+ interface DiffHunkActionContext {
135
+ action: DiffHunkActionKind;
136
+ side: DiffHunkSide;
137
+ lineChange: monaco$1.editor.ILineChange;
138
+ originalModel: monaco$1.editor.ITextModel;
139
+ modifiedModel: monaco$1.editor.ITextModel;
140
+ }
107
141
  //#endregion
108
142
  //#region src/code.detect.d.ts
109
143
  /**
@@ -140,8 +174,8 @@ declare const defaultRevealDebounceMs = 75;
140
174
  declare namespace monaco_shim_d_exports {
141
175
  export { monaco as default };
142
176
  }
143
- import * as import_monaco_editor from "monaco-editor";
144
- __reExport(monaco_shim_d_exports, import_monaco_editor);
177
+ import * as import_monaco_editor_esm_vs_editor_editor_api from "monaco-editor/esm/vs/editor/editor.api";
178
+ __reExport(monaco_shim_d_exports, import_monaco_editor_esm_vs_editor_editor_api);
145
179
  declare const monaco: typeof _monaco;
146
180
  //#endregion
147
181
  //#region src/utils/registerMonacoThemes.d.ts
@@ -285,4 +319,4 @@ declare function useMonaco(monacoOptions?: MonacoOptions): {
285
319
  } | null;
286
320
  };
287
321
  //#endregion
288
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco };
322
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco };
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-gUKedCzF.cjs');
1
+ const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-DMvZ1HUs.cjs');
2
2
 
3
3
  //#region src/ensureMonacoWorkers.ts
4
4
  function ensureMonacoWorkers() {
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-D0jPJkA_.cjs";
1
+ import { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-9QTN8hPV.cjs";
2
2
 
3
- //#region src/preloadMonacoWorkers.d.ts
4
- declare function preloadMonacoWorkers(): Promise<void>;
5
- //#endregion
6
3
  //#region src/ensureMonacoWorkers.d.ts
7
4
  declare function ensureMonacoWorkers(): void;
8
5
  //#endregion
9
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/preloadMonacoWorkers.d.ts
7
+ declare function preloadMonacoWorkers(): Promise<void>;
8
+ //#endregion
9
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-BaAqAXUs.js";
1
+ import { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-D0lzInae.js";
2
2
 
3
- //#region src/preloadMonacoWorkers.d.ts
4
- declare function preloadMonacoWorkers(): Promise<void>;
5
- //#endregion
6
3
  //#region src/ensureMonacoWorkers.d.ts
7
4
  declare function ensureMonacoWorkers(): void;
8
5
  //#endregion
9
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/preloadMonacoWorkers.d.ts
7
+ declare function preloadMonacoWorkers(): Promise<void>;
8
+ //#endregion
9
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, editorWorkerPath, getOrCreateHighlighter, registerMonacoThemes, uniqueWorkerPaths, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-C62vOlc9.js";
1
+ import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, editorWorkerPath, getOrCreateHighlighter, registerMonacoThemes, uniqueWorkerPaths, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-DQ17-Bwz.js";
2
2
 
3
3
  //#region src/ensureMonacoWorkers.ts
4
4
  function ensureMonacoWorkers() {
@@ -1,4 +1,22 @@
1
- const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-gUKedCzF.cjs');
1
+ const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-DMvZ1HUs.cjs');
2
+ const monaco_editor_esm_vs_basic_languages_cpp_cpp = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/cpp/cpp"));
3
+ const monaco_editor_esm_vs_basic_languages_javascript_javascript = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/javascript/javascript"));
4
+ const monaco_editor_esm_vs_basic_languages_powershell_powershell = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/powershell/powershell"));
5
+ const monaco_editor_esm_vs_basic_languages_python_python = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/python/python"));
6
+ const monaco_editor_esm_vs_basic_languages_shell_shell = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/shell/shell"));
7
+ const monaco_editor_esm_vs_basic_languages_typescript_typescript = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/typescript/typescript"));
8
+ require("monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel");
9
+ require("monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestMemory");
10
+ require("monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution");
11
+ require("monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution");
12
+ require("monaco-editor/esm/vs/basic-languages/python/python.contribution");
13
+ require("monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution");
14
+ require("monaco-editor/esm/vs/basic-languages/shell/shell.contribution");
15
+ require("monaco-editor/esm/vs/basic-languages/powershell/powershell.contribution");
16
+ require("monaco-editor/esm/vs/language/json/monaco.contribution");
17
+ require("monaco-editor/esm/vs/language/typescript/monaco.contribution");
18
+ require("monaco-editor/esm/vs/language/html/monaco.contribution");
19
+ require("monaco-editor/esm/vs/language/css/monaco.contribution");
2
20
 
3
21
  //#region src/ensureMonacoWorkers.legacy.ts
4
22
  function normalizeBaseUrl(baseUrl) {
@@ -18,7 +36,7 @@ function detectMonacoBaseUrlFromScripts() {
18
36
  for (const script of scripts) {
19
37
  const src = script.getAttribute("src") || "";
20
38
  if (!src) continue;
21
- const loaderMatch = src.match(/^(.*)\/vs\/loader\.js(?:\\?.*)?$/);
39
+ const loaderMatch = src.match(/^(.*)\/vs\/loader\.js.*$/);
22
40
  if (loaderMatch) return normalizeBaseUrl(loaderMatch[1]);
23
41
  const vsIndex = src.indexOf("/vs/");
24
42
  if (vsIndex > 0) return normalizeBaseUrl(src.slice(0, vsIndex));
@@ -85,7 +103,7 @@ function ensureMonacoWorkersLegacy(options) {
85
103
  if (!baseUrl) return;
86
104
  const workerUrl = makeWorkerUrl(baseUrl);
87
105
  if (!workerUrl) return;
88
- self.MonacoEnvironment = { getWorkerUrl() {
106
+ globalThis.MonacoEnvironment = { getWorkerUrl() {
89
107
  return workerUrl;
90
108
  } };
91
109
  } catch {}
@@ -118,6 +136,127 @@ async function preloadMonacoWorkers() {
118
136
 
119
137
  //#endregion
120
138
  //#region src/index.legacy.ts
139
+ const LEGACY_ONIG_INIT_KEY = "__streamMonacoLegacyOnigurumaInit__";
140
+ const LEGACY_ENGINE_KEY = "__streamMonacoLegacyShikiEngine__";
141
+ const LEGACY_ERROR_FILTER_KEY = "__streamMonacoLegacyMonacoErrorFilterInstalled__";
142
+ const LEGACY_FLAG_KEY = "__streamMonacoLegacy__";
143
+ const LEGACY_MONACO_LANGS_INIT_KEY = "__streamMonacoLegacyMonacoLangsInit__";
144
+ const LEGACY_TOKENS_PROVIDER_GUARD_KEY = "__streamMonacoLegacyTokensProviderGuardInstalled__";
145
+ function ensureLegacyOnigurumaInit() {
146
+ if (typeof globalThis === "undefined") return;
147
+ const g = globalThis;
148
+ if (g[LEGACY_ONIG_INIT_KEY]) return;
149
+ const init = (async () => {
150
+ try {
151
+ const shiki = await import("shiki");
152
+ if (typeof shiki.createJavaScriptRegexEngine === "function") return shiki.createJavaScriptRegexEngine();
153
+ return null;
154
+ } catch {
155
+ return null;
156
+ }
157
+ })();
158
+ g[LEGACY_ONIG_INIT_KEY] = init.then(() => true, () => false);
159
+ g[LEGACY_ENGINE_KEY] = init;
160
+ }
161
+ function ensureLegacyMonacoLanguageContributions() {
162
+ if (typeof globalThis === "undefined") return;
163
+ const g = globalThis;
164
+ if (g[LEGACY_MONACO_LANGS_INIT_KEY]) return;
165
+ const init = Promise.resolve().then(() => {
166
+ try {
167
+ const langs = require_preloadMonacoWorkers_shared.monaco_shim_exports.languages;
168
+ if (typeof (langs === null || langs === void 0 ? void 0 : langs.setMonarchTokensProvider) === "function") {
169
+ var _langs$setLanguageCon, _langs$setLanguageCon2, _langs$setLanguageCon3, _langs$setLanguageCon4, _langs$setLanguageCon5, _langs$setLanguageCon6;
170
+ langs.setMonarchTokensProvider("javascript", monaco_editor_esm_vs_basic_languages_javascript_javascript.language);
171
+ (_langs$setLanguageCon = langs.setLanguageConfiguration) === null || _langs$setLanguageCon === void 0 || _langs$setLanguageCon.call(langs, "javascript", monaco_editor_esm_vs_basic_languages_javascript_javascript.conf);
172
+ langs.setMonarchTokensProvider("typescript", monaco_editor_esm_vs_basic_languages_typescript_typescript.language);
173
+ (_langs$setLanguageCon2 = langs.setLanguageConfiguration) === null || _langs$setLanguageCon2 === void 0 || _langs$setLanguageCon2.call(langs, "typescript", monaco_editor_esm_vs_basic_languages_typescript_typescript.conf);
174
+ langs.setMonarchTokensProvider("python", monaco_editor_esm_vs_basic_languages_python_python.language);
175
+ (_langs$setLanguageCon3 = langs.setLanguageConfiguration) === null || _langs$setLanguageCon3 === void 0 || _langs$setLanguageCon3.call(langs, "python", monaco_editor_esm_vs_basic_languages_python_python.conf);
176
+ langs.setMonarchTokensProvider("cpp", monaco_editor_esm_vs_basic_languages_cpp_cpp.language);
177
+ (_langs$setLanguageCon4 = langs.setLanguageConfiguration) === null || _langs$setLanguageCon4 === void 0 || _langs$setLanguageCon4.call(langs, "cpp", monaco_editor_esm_vs_basic_languages_cpp_cpp.conf);
178
+ langs.setMonarchTokensProvider("shell", monaco_editor_esm_vs_basic_languages_shell_shell.language);
179
+ (_langs$setLanguageCon5 = langs.setLanguageConfiguration) === null || _langs$setLanguageCon5 === void 0 || _langs$setLanguageCon5.call(langs, "shell", monaco_editor_esm_vs_basic_languages_shell_shell.conf);
180
+ langs.setMonarchTokensProvider("powershell", monaco_editor_esm_vs_basic_languages_powershell_powershell.language);
181
+ (_langs$setLanguageCon6 = langs.setLanguageConfiguration) === null || _langs$setLanguageCon6 === void 0 || _langs$setLanguageCon6.call(langs, "powershell", monaco_editor_esm_vs_basic_languages_powershell_powershell.conf);
182
+ }
183
+ } catch {}
184
+ try {
185
+ for (const model of require_preloadMonacoWorkers_shared.monaco_shim_exports.editor.getModels()) {
186
+ const current = model.getLanguageId();
187
+ const next = require_preloadMonacoWorkers_shared.processedLanguage(current) || current;
188
+ if (next !== current) require_preloadMonacoWorkers_shared.monaco_shim_exports.editor.setModelLanguage(model, next);
189
+ else require_preloadMonacoWorkers_shared.monaco_shim_exports.editor.setModelLanguage(model, current);
190
+ }
191
+ } catch {}
192
+ });
193
+ g[LEGACY_MONACO_LANGS_INIT_KEY] = init;
194
+ }
195
+ function ensureLegacyTokensProviderGuard() {
196
+ if (typeof globalThis === "undefined") return;
197
+ const g = globalThis;
198
+ if (g[LEGACY_TOKENS_PROVIDER_GUARD_KEY]) return;
199
+ g[LEGACY_TOKENS_PROVIDER_GUARD_KEY] = true;
200
+ try {
201
+ const langs = require_preloadMonacoWorkers_shared.monaco_shim_exports.languages;
202
+ const setTokensProvider = typeof (langs === null || langs === void 0 ? void 0 : langs.setTokensProvider) === "function" ? langs.setTokensProvider.bind(langs) : null;
203
+ if (!setTokensProvider) return;
204
+ langs.setTokensProvider = (lang, provider) => {
205
+ if (provider && typeof provider.tokenize === "function") {
206
+ const originalTokenize = provider.tokenize.bind(provider);
207
+ const getInitialState = typeof provider.getInitialState === "function" ? provider.getInitialState.bind(provider) : null;
208
+ const wrappedProvider = {
209
+ ...provider,
210
+ tokenize(line, state) {
211
+ try {
212
+ return originalTokenize(line, state);
213
+ } catch {
214
+ return {
215
+ endState: state,
216
+ tokens: [{
217
+ startIndex: 0,
218
+ scopes: ""
219
+ }]
220
+ };
221
+ }
222
+ }
223
+ };
224
+ try {
225
+ const st = getInitialState ? getInitialState() : null;
226
+ wrappedProvider.tokenize("const a = 1", st);
227
+ } catch {
228
+ return { dispose() {} };
229
+ }
230
+ return setTokensProvider(lang, wrappedProvider);
231
+ }
232
+ return setTokensProvider(lang, provider);
233
+ };
234
+ } catch {}
235
+ }
236
+ function ensureLegacyMonacoErrorFilter() {
237
+ if (typeof globalThis === "undefined") return;
238
+ const g = globalThis;
239
+ if (g[LEGACY_ERROR_FILTER_KEY]) return;
240
+ g[LEGACY_ERROR_FILTER_KEY] = true;
241
+ (async () => {
242
+ try {
243
+ const mod = await import("monaco-editor/esm/vs/base/common/errors.js");
244
+ const handler = mod === null || mod === void 0 ? void 0 : mod.errorHandler;
245
+ if (!handler || typeof handler.unexpectedErrorHandler !== "function") return;
246
+ const prev = handler.unexpectedErrorHandler.bind(handler);
247
+ handler.unexpectedErrorHandler = (err) => {
248
+ const msg = (err === null || err === void 0 ? void 0 : err.message) ? String(err.message) : String(err);
249
+ if (msg.includes("compileAG") || msg.includes("Cannot read properties of null (reading")) return;
250
+ return prev(err);
251
+ };
252
+ } catch {}
253
+ })();
254
+ }
255
+ ensureLegacyOnigurumaInit();
256
+ globalThis[LEGACY_FLAG_KEY] = true;
257
+ ensureLegacyMonacoLanguageContributions();
258
+ ensureLegacyTokensProviderGuard();
259
+ ensureLegacyMonacoErrorFilter();
121
260
  ensureMonacoWorkersLegacy();
122
261
 
123
262
  //#endregion
@@ -1,11 +1,11 @@
1
- import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-D0jPJkA_.cjs";
1
+ import { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-9QTN8hPV.cjs";
2
2
 
3
- //#region src/preloadMonacoWorkers.legacy.d.ts
4
- declare function preloadMonacoWorkers(): Promise<void>;
5
- //#endregion
6
3
  //#region src/ensureMonacoWorkers.legacy.d.ts
7
4
  declare function ensureMonacoWorkersLegacy(options?: {
8
5
  baseUrl?: string;
9
6
  }): void;
10
7
  //#endregion
11
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
8
+ //#region src/preloadMonacoWorkers.legacy.d.ts
9
+ declare function preloadMonacoWorkers(): Promise<void>;
10
+ //#endregion
11
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
@@ -1,11 +1,21 @@
1
- import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-BaAqAXUs.js";
1
+ import { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-D0lzInae.js";
2
+ import "monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution";
3
+ import "monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution";
4
+ import "monaco-editor/esm/vs/basic-languages/python/python.contribution";
5
+ import "monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution";
6
+ import "monaco-editor/esm/vs/basic-languages/shell/shell.contribution";
7
+ import "monaco-editor/esm/vs/basic-languages/powershell/powershell.contribution";
8
+ import "monaco-editor/esm/vs/language/json/monaco.contribution";
9
+ import "monaco-editor/esm/vs/language/typescript/monaco.contribution";
10
+ import "monaco-editor/esm/vs/language/html/monaco.contribution";
11
+ import "monaco-editor/esm/vs/language/css/monaco.contribution";
2
12
 
3
- //#region src/preloadMonacoWorkers.legacy.d.ts
4
- declare function preloadMonacoWorkers(): Promise<void>;
5
- //#endregion
6
13
  //#region src/ensureMonacoWorkers.legacy.d.ts
7
14
  declare function ensureMonacoWorkersLegacy(options?: {
8
15
  baseUrl?: string;
9
16
  }): void;
10
17
  //#endregion
11
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
18
+ //#region src/preloadMonacoWorkers.legacy.d.ts
19
+ declare function preloadMonacoWorkers(): Promise<void>;
20
+ //#endregion
21
+ export { DiffHunkActionContext, DiffHunkActionKind, DiffHunkSide, MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };