codemirror - 如何在 Code Mirror 中自动更新匹配的 html/xml 标签

标签 codemirror

我真的很喜欢 Visual Studio html 编辑器更新匹配标签的方式。示例:

<h2>Header</h2>

如果我们替换<h2>开始标签为 <h3> ,那么结束标记应自动更改为 </h3> 。这应该在我们键入时发生。

我正在尝试自己实现这一点,但到目前为止还没有成功。我认为 matchtags 插件将是一个很好的起点,但如果标签名称不匹配,它就会停止工作。 另外,我注意到 xml 模式将结束标记标记为标记名称不匹配的错误,但我不确定如何使用它来更新结束标记。

如果有经验的 CodeMirror 用户提供任何帮助,我将不胜感激。

谢谢

最佳答案

因此,一旦编辑完成,您就不再拥有查找匹配标签所需的信息(这就是为什么 matchtag 插件无法再提供帮助的原因)。一个好的解决方案可能是在编辑开始时(当光标位于标签名称中时)使用由 addon/fold/xml- 导出的 CodeMirror.findMatchingTag 函数来跟踪当前匹配的标签。 Fold.js 文件。然后,对于看起来像标记名称内本地编辑的“更改”事件(即它们的开始和结束位于标记名称内),立即通过修改匹配标记来跟进。

关于codemirror - 如何在 Code Mirror 中自动更新匹配的 html/xml 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27603251/

相关文章:

javascript - 如何向 CodeMirror 添加关键字(并更改其颜色)?

codemirror - 制作CodeMirror编辑器及其装订线的容器高度为100%

javascript - Reactjs - 强制刷新的工作流程是什么?

javascript - 更新时获取 Codemirror 文本框值

javascript - 使用 CSS 显示 :flex (flexbox) and/or JavaScript to make adjustable page

javascript - 使用 codemirror 从 textarea 中获取选定/突出显示的文本不起作用

angular - 引用错误: navigator is not defined in angular4 with server side rendering

javascript - 按类将Codemirror应用于多个textarea

javascript - 在不访问对象的情况下以编程方式编辑 CodeMirror 内容

javascript - 如何阻止 CodeMirror 在键盘上移动光标?