欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > CodeMirror 如何动态更新definemode

CodeMirror 如何动态更新definemode

2025/9/22 8:20:37 来源:https://blog.csdn.net/qq_44986029/article/details/144544495  浏览:    关键词:CodeMirror 如何动态更新definemode

CodeMirror 如何动态更新definemode

        • 问题描述:
        • 解决方法:

问题描述:

项目中有一部分用到了CodeMirror组件,其高亮显示的内容需要根据最新的json动态的更新,需要使用definemode自定义高亮内容。
想要的效果如下:
在这里插入图片描述
但在实际实现时发现,一旦codemirror实例创建完成之后,即使definemode定义的语法规则发生了变化,codemirror也不会根据最新的规则高亮显示对应内容,
实际情况如下图:
在这里插入图片描述

解决方法:

使用setOption更新codemirror
代码:

  function defineChineseMode(json) {const jsonMode = createJsonMode(json) //生成语法规则return function () {return {token: function (stream, state) {//根据语法规则生成正则表达式......stream.next(); // 继续检查下一个字符return null}};};}
defineMode("chinese", defineChineseMode())
const instance = document.querySelector('.react-codemirror2 .CodeMirror') //  获取codemirror实例if (instance ) {//更新实例的modeinstance.CodeMirror.setOption("mode","chinese")}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词