Skip to content
数据录入与表单有已知边界

NnXmlCodeEditor XML 编辑器

XML 编辑、行号、诊断与语法高亮。

示例

API

Props

名称类型默认值说明
valuestring | number''XML 文本,配合 v-model:value
rowsnumber | string8内部文本域原生行数。
placeholderstring''占位文字。
statusstring''errorwarning 使用对应状态样式。
disabledbooleanfalse禁用编辑。
readonlybooleanfalse原生只读状态,并在根节点增加 XML viewer 标记。
maxlengthnumber | string原生最大长度。
borderedbooleantrue是否显示边框。
lineNumbersbooleanfalse富渲染模式下显示行号;诊断提示也依赖该模式。
lightweightbooleanfalse强制仅使用普通文本域,不渲染高亮层、行号和诊断层。
diagnosticsXmlDiagnostic[][]行级诊断;同一行文案会去重后以中文分号连接。
ts
interface XmlDiagnostic {
    line?: number; // 优先使用,并限制到现有行范围
    index?: number; // line 缺失时按字符索引推导行号
    column?: number; // 最小为 1;同一行采用最小列号
    message?: string;
}

classstyle 外的未声明属性会转发给内部 <textarea>classstyle 合并到编辑器根节点。

Events

事件参数说明
update:value(value: string)每次输入触发。
input(event: InputEvent)原生输入事件。
change(event: InputEvent)当前与 input 同时触发,不等待失焦。
pressEnter(event: KeyboardEvent)任意 Enter keydown 都会触发,包括正常换行。
focus(event: FocusEvent)原生 focus。
blur(event: FocusEvent)原生 blur。
keydown(event: KeyboardEvent)原生 keydown。
keyup(event: KeyboardEvent)原生 keyup。

Expose

名称签名或值说明
textareaHTMLTextAreaElement 引用内部原生元素。
highlightHTMLElement 引用富渲染模式的高亮 <pre>;否则为空。
focus(options?: FocusOptions) => void聚焦编辑区。
blur() => void移除焦点。
select() => void选择全部文本。

当前限制

  • 组件只提供文本编辑、着色和展示诊断,不会解析、格式化或验证 XML。
  • 内容超过 128 KiB 时会自动进入轻量模式;高亮、行号和诊断层都会关闭。诊断当前也只有开启 lineNumbers 且处于富渲染模式时可见。

Released under the MIT License.