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 +62 -1
- package/README.zh-CN.md +67 -1
- package/dist/{index.base-D0jPJkA_.d.cts → index.base-9QTN8hPV.d.cts} +38 -4
- package/dist/{index.base-BaAqAXUs.d.ts → index.base-D0lzInae.d.ts} +39 -5
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -1
- package/dist/index.legacy.cjs +142 -3
- package/dist/index.legacy.d.cts +5 -5
- package/dist/index.legacy.d.ts +15 -5
- package/dist/index.legacy.js +142 -3
- package/dist/{preloadMonacoWorkers.shared-gUKedCzF.cjs → preloadMonacoWorkers.shared-DMvZ1HUs.cjs} +1261 -31
- package/dist/{preloadMonacoWorkers.shared-C62vOlc9.js → preloadMonacoWorkers.shared-DQ17-Bwz.js} +1245 -33
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# stream-monaco
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/stream-monaco)
|
|
4
4
|
[](README.zh-CN.md)
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
[](https://bundlephobia.com/package/stream-monaco)
|
|
7
7
|
[](./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
|
-
|
|
1
|
+
# stream-monaco
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/stream-monaco)
|
|
4
4
|
[](README.md)
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
[](https://bundlephobia.com/package/stream-monaco)
|
|
7
7
|
[](./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
|
|
145
|
-
__reExport(monaco_shim_d_exports,
|
|
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
|
|
144
|
-
__reExport(monaco_shim_d_exports,
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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
|
-
|
|
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-
|
|
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() {
|
package/dist/index.legacy.cjs
CHANGED
|
@@ -1,4 +1,22 @@
|
|
|
1
|
-
const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-
|
|
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
|
-
|
|
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
|
package/dist/index.legacy.d.cts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-
|
|
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
|
-
|
|
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 };
|
package/dist/index.legacy.d.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco } from "./index.base-
|
|
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
|
-
|
|
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 };
|