# @web/editor CodeMirror 6 封装的现代代码编辑器组件,专为 `@web/base` 和 `@web/state` 生态设计。原生 ESM,零打包开箱即用。 ## 核心特性 - **轻量原生**:基于 ESM,直接在浏览器运行。 - **AutoForm 集成**:作为 `AutoForm` 的高阶组件,支持 `type: 'CodeEditor'`。 - **响应式绑定**:深度集成 `@web/state` 的 `$bind` 机制。 - **语法支持**:内置 JS、JSON、HTML 高亮。 - **双轨产物**:提供源码级 `editor.js` 和压缩版 `editor.min.js`。 ## 安装与引入 严禁使用 `npm install`。请通过 `loader.js` 或 `importmap` 引入。 ### Importmap 配置 ```json { "imports": { "@web/editor": "/path/to/editor.js" } } ``` ## API 手册 ### `` 组件 #### 属性 (Attributes) - `lang`: 语言类型,支持 `javascript` (默认), `json`, `html`。 - `theme`: 主题,支持 `dark` (默认, One Dark), `light`。 - `value`: 初始值。 - `readonly`: 是否只读。 #### 属性 (Properties) - `value`: 获取或设置编辑器文本内容。 - `view`: 获取底层的 CodeMirror `EditorView` 实例。 #### 事件 (Events) - `input`: 内容变化时触发(符合标准表单行为)。 - `change`: 内容变化时触发,`event.detail` 包含最新内容。 ## 使用示例 ### 基础用法 ```html ``` ### 在 AutoForm 中使用 ```javascript const schema = [ { name: 'config', label: '配置', type: 'CodeEditor', setting: { lang: 'json' } } ]; ``` ## 构建 ```bash npm run build ``` 产出 `dist/editor.js` (源码) 和 `dist/editor.min.js` (压缩)。