codemirror怎么高亮指定文本

先上图
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/c070cde11a314c45a859ccb0ca7f41c7.png
产品经理的需求是编辑框中用了占位符的话,占位符中的变量高亮,简单吧!还有一个附加要求,必须是外部定义的变量,不是只用{{}}来区分的,从图中也能看到{{xxx}}就没有高亮。

接到这个需求我的第一反应是想跟产品经理说,这个需求提的很好,下次别提了,哈哈,开玩笑的。

我第一反应想到了用codemirror,以我对codemirror不多的理解,这个需求应该用语言高亮的功能能实现,毕竟我也简单的用过@codemirror/lang-javascript。然后我就开始研究语言包怎么写。研究结果是,语言包只能给定规则,这是用Lezer定义的上下文无关文法实现的,但是我没想到动态传入变量的方法,也就是解决不了上图中{{xxx}}不高亮的问题。

开始了啃codemirror文档的漫长之旅。我参考了文档https://codemirror.net/examples/decoration/中添加下划线的代码,基本实现了使用我想要的功能,不过不完善。

然后把这个需求的优先级放低,先做手上的工作,有空就研究codemirror文档。其实也没啥空。也就昨天下午到今天有空,不死心又去啃文档了。今天终于解决了!最终的解决方案是借鉴了@codemirror/search中的代码实现的

看codemirror的源码发现自己的能力差太多了,好羡慕人家那么强的能力,有空我想通读一下codemirror的源码,一想到它里面对字符串的操作算法我就头大,根本看不懂:)

代码有空在写进来,今天就这样

如果您觉得对您有帮助,请点赞哦:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178662.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多媒体播放器Infuse mac中文版软件特点

Infuse mac是一款多媒体播放器应用,它支持播放多种格式的视频文件、音频文件和图片文件,并且可以通过AIrPlay将媒体内容投放到其他设备上。Infuse还支持在线视频流媒体播放和本地网络共享,用户可以通过它来访问家庭网络上的媒体文件。 Infuse…

upload-labs12-21关

第十二关 提示及源码 $is_upload false; $msg null; if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],strrpos($_FILES[upload_file][name],".")1);if(in_array($file_ext,$ext_arr)){$temp_file $_FILES…

计算机网络五层协议的体系结构

计算机网络中两个端系统之间的通信太复杂,因此把需要问题分而治之,通过把一次通信过程中涉及的所有问题分层归类来进行研究和处理 体系结构是抽象的,实现是真正在运行的软件和硬件 1.实体、协议、服务和服务访问点 协议必须把所有不利条件和…

c++基于CImage实现图片格式转换完整源代码

最近遇到项目需要,对图片进行格式转换,抱着怎么简单怎么做的想法,于是进行了验证,代码参考自网络,进行了简单的修改。 我这里提供完整的代码。 直接上代码: 头文件: #pragma once#include &l…

LCD1602命令代码整合

本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步! > 发布人:日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

使用Kohya_ss训练Stable Diffusion Lora

Stable Diffusion模型微调方法 Stable Diffusion主要有 4 种方式:Dreambooth, LoRA, Textual Inversion, Hypernetworks。 Textual Inversion (也称为 Embedding),它实际上并没有修改原始的 Diffusion 模型, 而是通过…

day18_多线程

今日内容 零、 复习昨日 一、作业 二、线程安全的集合 三、死锁 四、线程通信 五、线程池 零、 复习昨日 见晨考 一、线程安全[重点] 1.0 线程不安全 当前线程的数据被其他线程修改 1.1 线程安全 临界资源:共享资源(同⼀个对象),一次只可以有一个线程操…

数字化时代,VR虚拟展厅为企业带来全新商机

临近年关,各个行业都想在年关将至之时冲一波销量,各种婚博会、家博会、车展会多不胜数。但是线下展会终归是场地有限,因此为了扩大受众范围,同时节约一定宣传成本,实现全球范围的展示和推广,不少企业都会选…

python基础练习题库实验八

文章目录 前言题目1代码 题目2代码 题目3代码 总结 前言 🎈关于python小题库的这模块我已经两年半左右没有更新了,主要是在实习跟考研,目前已经上岸武汉某211计算机,目前重新学习这门课程,也做了一些新的题目 &#x…

【星海出品】SDN neutron (五) openvswitch

1、ovs-vswitchd组件是交换机的主要模块,运行在用户态,其主要负责基本的转发逻辑、地址学习、外部物理端口绑定等。还可以运用OVS自带的ovs-ofctl工具采用openflow协议对交换机进行远程配置和管理。 2、ovsdb-server组件是存储OVS的网桥等配置、日志以及…

Flume(一)【Flume 概述】

前言 今天实在不知道学点什么好了,早上学了3个多小时的 Flink ,整天只学一门技术是很容易丧失兴趣的。那就学点新的东西 Flume,虽然 Kafka 还没学完,但是大数据生态圈的基础组件也基本就剩这倆了。 Flume 概述 生产环境中的数据一…

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 训练集图片处理1)数据加载2)图像处理 2. 测试图片处理1)图像读取2)图像处理 相关其它博客工程源代码下载其它资料下载 前言 本项目基于从网络获取的多种银行卡数据…