# @eyeauras/workbench-monaco 中文文档

规范地址：https://npmcn.com/package/%40eyeauras/workbench-monaco/

版本：0\.3\.44
npm 元数据更新时间：2026-11-02T19:12:45.404Z
中文译文更新时间：2026-11-14T06:36:25.178Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40eyeauras/workbench-monaco
原文对照：https://npmcn.com/package/%40eyeauras/workbench-monaco/?lang=original
项目主页：https://github.com/iXab3r/EyeAuras.UI.Workbench#readme
源码仓库：https://github.com/iXab3r/EyeAuras.UI.Workbench

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：98.6 kB，18 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：monaco-editor ^0\.52\.2，@eyeauras/workbench 0\.3\.44
- 首次发布：2026-10-13T19:48:52.107Z
- 最新版本发布：2026-11-02T19:12:45.210Z
- 近 30 天下载量：2510（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

@eyeauras/workbench 的可选摩纳哥编辑器提供者.

## 安装

```sh
npm install @eyeauras/workbench-monaco
```

也可以使用：`pnpm add @eyeauras/workbench-monaco`、`yarn add @eyeauras/workbench-monaco`、`bun add @eyeauras/workbench-monaco`

## README

# `@eyeauras/workbench-monaco`

可选摩纳哥支持的编辑器提供者和高容量的输出查看器 `@eyeauras/workbench`。 。 。 .

## 安装

```bash
npm install @eyeauras/workbench@0.3.44 @eyeauras/workbench-monaco@0.3.44 monaco-editor@^0.52.2
```

## 编辑器快速启动

使用 CSS 意识浏览器捆绑器和大小主机. 此 Vite 示例配置了纯文本工作者 ; 当您的主机需要这些语言时, 添加 JSON, CSS, HTML 或 TypeScript 工人 .

```ts
import { createWorkbench } from "@eyeauras/workbench";
import { createMonacoEditorProvider } from "@eyeauras/workbench-monaco";
import * as monaco from "monaco-editor";
import EditorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
window.MonacoEnvironment = { getWorker: () => new EditorWorker() };
const host = document.createElement("div");
host.style.cssText = "width:100%;height:600px";
document.body.append(host);
const workbench = createWorkbench(host);
workbench.registerEditorProvider(createMonacoEditorProvider(monaco, { languageFromInput: () => "plaintext" }));
workbench.openEditor({ id: "notes", title: "Notes", editorType: "monaco", data: "Hello" });
export function dispose() { workbench.dispose(); host.remove(); }
```

Vite 类型脚本项目包括 `vite/client` 适用于工人的进口类型。 其他捆绑者自行供应 工人融入社会。 供应商拥有挂载编辑器/模型。 核心安装共享样式; 见 [弹壳快速启动](https://github.com/iXab3r/EyeAuras.UI.Workbench/blob/master/docs/QUICKSTART.md) 和主题.

主机可以提供现有的摩纳哥取名空间或者使用懒惰的提供商. 见 [EyeAuras UI Workbench 存储器](https://github.com/iXab3r/EyeAuras.UI.Workbench) 示例和 API 定向.

每个提供者也都项目 `workbench.services.diagnostics` 对于编辑器输入的精确性 `resource` 进入摩纳哥标记。 诊断所有者仍然通过摩纳哥标记所有者的名字空间被隔离,下落不明 区域倒回第一个字符,关闭编辑器后,只清除该字符预测的标记 编辑。 通过核心服务发布诊断;不需要摩纳哥特定的生产者API.

## 输出日志

`createMonacoOutputView` 挂载一个独立、只读的输出编辑器。 它需要现有的摩纳哥 命名空间和一个核心通道;它不需要Workbench shell或React. 配置摩纳哥工人 您的捆绑物和编辑器的提供者一样,并赋予容器一个明确的高度.

```ts
import { WorkbenchOutputService } from "@eyeauras/workbench";
import { createMonacoOutputView } from "@eyeauras/workbench-monaco";
import * as monaco from "monaco-editor";

const output = new WorkbenchOutputService();
const channel = output.registerChannel("runtime", "Runtime", {
  maxEntries: 100_000,
  maxCharacters: 16 * 1024 * 1024,
});
// The application supplies current translated presentation, including count formatting.
const presentation = resolveOutputPresentation(currentLocale);
const view = createMonacoOutputView(container, monaco, channel, { presentation });
// On a locale change: updates controls/ARIA/counts without replacing the model or filters.
view.setPresentation(resolveOutputPresentation(nextLocale));
channel.appendLines([
  { timestamp: new Date(), level: "info", source: "Combat", message: "Target acquired" },
  { timestamp: new Date(), level: "error", source: "Runtime", message: "Attack failed\n  at attack()" },
]);
view.setFilter({ text: "attack,!cancelled", levels: ["warning", "error"] });

// On unmount: the view owns its editor/model; the service owns its channels.
view.dispose();
output.dispose();
```

所需数额 `MonacoOutputPresentation` 包含查看器标签、级别名称和计数前题。 主机拥有翻译;适配器没有默认目录或本地化依赖性.

工具栏支持独立的级别和类别(`source`) 选择,字面上包含/! 排除 术语、 跟踪、 包装、 清除和复制过滤 。 正逗号分隔术语使用 OR; 任何匹配 负词排除了整个记录,包括其多行续作. 匹配为 对消息和源不敏感。 引文将逗号保留在一个术语内 并保持文字, 匹配 VS 代码输出解析器。 这不是一个 regex 或 JavaScript 表达式评价器 。 失踪 `levels`编号 :`sources` 表示全部; 空数组表示无. 时间戳显示 UTC . 原始来源可以提供 `timestamp: null` 财务报告和审定财务报表 `level: "unknown"`; 这些显示为 `[--:--:--.---] [UNKNOWN]` 具有中性重度颜色,并保持可独立过滤.

标题使用共享的Workbench Toolbar和上下文菜单. 其过滤器在 左; 动作会随着容器的收缩而从右到左溢入更多动作,而不添加 页眉行或重设置过滤/切换状态 。 独立视图安装共享的 Workbench 样式每文档一次; 主机可以自定义相同 `--vscode-*` 主题符号作为其它控件. 过滤器,取景模式和操作是单独的菜单组;同样的分组仍然在溢出.

### 备选办法和寿命

| 选项 | 违约/合同 |
| --- | --- |
| `filter` | 所有记录。 可选 `text`, (中文(简体) ), `levels`,以及 `sources`; 稍后更新为 `setFilter`。 。 。 . |
| `follow` | `true`。跟随尾部;读取更早的记录会暂停. `setFollow(true)` 简历。 布局和环绕更改不禁用 . |
| `wordWrap` | `true`。“环绕动作”改变演示文稿,而不是记录内容. |
| `theme` | `vs-dark`摩纳哥主题为地名空间-全球,而不是每个观众孤立. |
| `writeClipboard` | `navigator.clipboard.writeText`。当浏览器剪贴板无法访问时,提供同步/同步主机调用. |

返回的视图曝光 `element`摩纳哥公众 `editor`, (中文(简体) ), `setFilter`, (中文(简体) ), `setFollow`, (中文(简体) ), `flush`, (中文(简体) ), `getText`,并具有同等能力 `dispose`。视图拥有它的编辑器、模型、工具栏和订阅,而不是它的 频道或服务。 重用主机拥有的频道,而不处理主机在视图卸载上的服务. 剪贴板失败出现在状态;当前 Copy 动作没有暂时的成功动画.

### 预测和限制

时标/重度装饰只覆盖可见的取景口并使用Workbench CSS颜色变量. 当另一个摩纳哥编辑器更改全空间主题时,它们会保持颜色;查看器不会 注册全局日志语言或主题.

只有匹配的记录输入摩纳哥模式,所以本地查找和选择副本运行在可见处 语句。 过滤器更改重建投影同步并重设其选择 。 批次附件和前缀 当Follow被关闭而所选记录得以存续时, 驱离保留读取位置 。 A 类 定期释放删除的摩纳哥文本缓冲器。 来源记录仍可在 被过滤器隐藏时的频道。 用户界面更新是每个动画框架的结合; `flush()` 应用 待立即更改 `getText()` 返回已过滤文本前的冲出 .

两种保留限制同时适用。 默认是10万张唱片和16个小米 **UTF-16 代码 消息+源的单位**而不是JavaScript的字节盖。 超大小的记录也被拆除; 状态报告自Clear以来被驱逐的人数. `getEntries(afterId)` 返回保留光标 尾巴没有复制早期的历史. 身份识别在Clear全线保持单调状态. `onDidChange` 宣布一个 完成附件批次或清除; `onDidAppend` 报告保留下来的新记录。 现有 `append`, (中文(简体) ), `appendLine`,以及 `getLines` 制片人电话继续工作.

默认剪贴板使用 `navigator.clipboard`; 嵌入式主机可以通过 `writeClipboard`。 。 。 . 处置取景者后再处置其服务. 在反应中,从效果中挂起而不是通过 每个日志批次通过组件状态 :

```tsx
import { useEffect, useRef } from "react";
import type { OutputChannel } from "@eyeauras/workbench";
import { createMonacoOutputView, type MonacoNamespace } from "@eyeauras/workbench-monaco";

function Output({ channel, monaco }: { channel: OutputChannel; monaco: MonacoNamespace }) {
  const host = useRef<HTMLDivElement>(null);
  useEffect(() => {
    const view = createMonacoOutputView(host.current!, monaco, channel);
    return () => view.dispose();
  }, [channel, monaco]);
  return <div ref={host} style={{ height: "100%", minHeight: 0 }} />;
}
```

见演示 **输出日志** 页面用于100k/1M批量装载和活流. 长期档案和 工作室/维佐尔运输适配器仍然是东道方的责任。 制作人的决定和基准 限制记录在 [问题26](https://github.com/iXab3r/EyeAuras.UI.Workbench/issues/26)。 。 。 .

## 常见问题

### @eyeauras/workbench-monaco 是什么？

@eyeauras/workbench 的可选摩纳哥编辑器提供者\.

### 如何安装 @eyeauras/workbench-monaco？

在项目目录运行 npm install @eyeauras/workbench-monaco，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：monaco-editor（^0\.52\.2）、@eyeauras/workbench（0\.3\.44）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @eyeauras/workbench-monaco 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @eyeauras/workbench-monaco 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @eyeauras/workbench-monaco 可以商用吗？

@eyeauras/workbench-monaco 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @eyeauras/workbench-monaco 的下载量有多少？

根据 npm 官方下载统计，@eyeauras/workbench-monaco 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,510 次，日均约 84 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @eyeauras/workbench-monaco 还在维护吗？

最新版本 0\.3\.44 发布于 2026/11/03（11 天前）；至今共发布 20 个版本，其中过去 12 个月发布了 20 个；首次发布于 2026/10/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

