当前位置: 首页 > news >正文

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")}
http://www.lryc.cn/news/505200.html

相关文章:

  • 舵机SG90详解
  • 程序设计考题汇总(四:SQL练习)
  • 明达IOT平台助力工业废水运维智能化
  • 深入理解 Ansible Playbook:组件与实战
  • JavaEE初阶——多线程(线程安全-锁)
  • Stable Diffusion 提示词语法
  • 【功能安全】安全确认
  • 在pycharm2024.3.1中配置anaconda3-2024-06环境
  • linux不同发行版中的主要差异
  • 概率论得学习和整理29: 用EXCEL 描述二项分布
  • C++打造局域网聊天室第九课: 客户端队列及其处理线程
  • 请求go web后端接口 java安卓端播放视频
  • XML Schema 复合类型 - 混合内容
  • 第8章 搬移特性
  • ARM/Linux嵌入式面经(五九):海尔
  • java中的List、数组和set
  • freeswitch(配置文件结构)
  • ARMS 用户体验监控正式发布原生鸿蒙应用 SDK
  • 使用 esrally race 测试 Elasticsearch 性能:实践指南
  • OkHttp源码分析:分发器任务调配,拦截器责任链设计,连接池socket复用
  • 中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”
  • 重生之我在异世界学编程之C语言:深入预处理篇(上)
  • dolphinscheduler服务RPC框架源码解析(二)RPC核心注解@RpcService和@RpcMethod设计实现
  • 【从零开始入门unity游戏开发之——C#篇04】栈(Stack)和堆(Heap),值类型和引用类型,以及特殊的引用类型string
  • ARCGIS国土超级工具集1.2更新说明
  • 暂停window11自动更新
  • Git简介和特点
  • 如何通过docker 部署minio,端口号为9105
  • 设置Qt程序开机自启动(windows版本)
  • 【HarmonyOS】鸿蒙获取appIdentifier,Identifier