SuperAPI AI 工具集

monaco-editor

编程与开发

查看项目

更新于 10-16 01:15

技能介绍

Monaco Editor 是浏览器端代码编辑器,也是 VS Code 使用的编辑器内核,提供语法高亮、IntelliSense、diff 视图、小地图等能力,覆盖 50+ 语言。

用途:在网页或 React 应用中嵌入代码编辑体验,适合在线编辑器、配置面板、代码预览与差异对比等场景。

主要能力:50+ 语言语法高亮,TypeScript/JavaScript 自动补全与类型推断,内置并排与内联 diff 编辑器,支持正则的查找替换、小地图、多光标(Alt+Click)、按缩进或语法折叠代码,以及匹配 VS Code 主题格式的自定义主题;语言服务通过 Web Worker 运行,避免阻塞编辑。

React 集成:使用 @monaco-editor/react,通过 import Editor from '@monaco-editor/react' 引入,以 height、language、theme、value、onChange、options 等属性配置;onMount 回调可获取编辑器实例与 monaco 命名空间,用于注册命令或快捷键。DiffEditor 是独立组件,接收 original、modified、language 属性。

使用与限制:编辑器包约 2MB,建议懒加载,例如 const Editor = lazy(() => import('@monaco-editor/react'))。Vite 需直接安装 monaco-editor(它是 @monaco-editor/react 的 peer dependency),可执行 bun add @monaco-editor/react monaco-editor,并配置 worker 打包(如使用 vite-plugin-monaco-editor)。自定义主题通过 monaco.editor.defineTheme() 定义。使用原生 API monaco.editor.create() 时需在清理阶段调用 editor.dispose() 防止内存泄漏。语言 ID 可用 monaco.languages.getLanguages() 查询,常见映射包括 .md → markdown、.json → json、.ts → typescript、.py → python。资料强调 API 随版本变化,写入代码前应先用 WebFetch 查阅官方文档、TypeDoc、React 包装器 README 等来源,不要假设 API 存在。具体收费与平台信息暂未提供。