monaco-editor插件自定义编辑器内容颜色

news2024/11/29 14:51:56

开始之前先说一下他的自定义内容颜色的api

monaco.languages.setMonarchTokensProvider((languageId: string, languageDef: IMonarchLanguage | Thenable<IMonarchLanguage>))

参数解析:接收两个参数

  • 一个是你要设置的编辑器语言种类,可以是sql,html,css,javascript等
  • 第二个参数就是具体设置不同关键字颜色的配置
 monaco.languages.setMonarchTokensProvider('sql', {
        // 设置语法规则
        tokenizer: {
            root: [
              [/\b(SELECT|FROM|WHERE|ORDER BY|GROUP BY|JOIN|LEFT JOIN|RIGHT JOIN|INNER JOIN|ON)\b/, 'keyword'], // SQL关键字
              [/\b(AND|OR|NOT)\b/i, 'operator'],
              [/'([^'\\]*(\\.[^'\\]*)*)'/, 'defineColor'],
        }
      });

这里着重讲一下第二个参数:

[/\b(AND|OR|NOT)\b/i, 'operator'] :该数组由两部分组成,第一部分是要匹配的字段的正则表达式,这里的意思是对“AND|OR|NOT”三个关键字进行单独设置颜色;

第二部分就是对应设置颜色的代名词,他可以由两种方式传入;

一种就是官方预先设置好的一些颜色名词如:具体名词和颜色的对应关系可以参考(Monaco Editor)

 另一种方式就是我们在代码中提前设置好一些关键字以及他们的十六进制颜色编码,然后在使用,具体使用如下

// 定义一个主题,通过rules关键字来设置自定义颜色名词,
 monaco.editor.defineTheme("myTheme", {
    base: "vs",
    inherit: true,
    rules: [
      {token:'通知', foreground:'FF0000'},
    ],
        
   });
 monaco.editor.setTheme("myTheme");

// 使用
 monaco.languages.setMonarchTokensProvider('sql', {
        // 设置语法规则
        tokenizer: {
            root: [
              [/\b(AND|OR|NOT)\b/i, '通知'],
        }
      });

解析: 这里通过defineTheme方法的rules属性来添加一个自定义颜色,名字是“通知”,颜色是红色,然后在单独对“AND|OR|NOT”关键字设置我们我们定义的“通知”颜色

看看效果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu14.04安装igH EtherCAT Master

一、下载EtherCAT安装包 安装包下载路径&#xff1a;EtherLab EtherCAT Master / Code / [334c34]&#xff0c;打开后点击Download下载 二、安装前置依赖库 最好切换到root用户进行下列步骤 apt-get install autoconf automake libtool net-tools三、编译安装 解压安装包&a…

excel如何折叠展开行列?

Excel可以使用分组功能来实现折叠展开行列的效果&#xff0c;同时可以在单元格内添加号或-号来进行操作。 具体步骤如下&#xff1a; 1. 选中需要进行折叠展开的行或列&#xff0c;右键选择“分组”。 2. 在弹出的“分组”对话框中&#xff0c;选择“行”或“列”&#xff0…

『赠书活动 | 第十一期』清华社赞助 | 《Python系列丛书》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 『赠书活动 &#xff5c; 第十一期』 本期书籍&#xff1a;《Python系列丛书》 公众号赠书&#xff1a;第三期 参与方式&#xff1a;关注公众号&#xff1a;低调而奢…

逻辑回归分类器-创建词向量-情感分析

题目 请使用您今天学习的逻辑回归分类器对下面的聊天机器人数据进行自动分类。&#xff08;3分&#xff09; https://github.com/songys/Chatbot_data&#xff08;ChatbotData.csv文件&#xff09; https://raw.githubusercontent.com/songys/Chatbot_data/master/ChatbotDa…

【职业人生】如何有效的在职场当中避免工作失误和提高个人发展

《左传宣公二年》&#xff1a;“人谁无过&#xff0c;过而能改&#xff0c;善莫大焉。”古往今来&#xff0c;多少人犯过错误。强大如“智绝”的诸葛孔明&#xff0c;也有街亭之失。职场人更是难免会在工作中出现失误。 在职场生涯当中避免不了在工作当中带来的失误&#xff0c…

【Hadoop综合实践】手机卖场大数据综合项目分析

&#x1f680; 本文章实现了基于MapReduce的手机浏览日志分析 &#x1f680; 文章简介&#xff1a;主要包含了数据生成部分&#xff0c;数据处理部分&#xff0c;数据存储部分与数据可视化部分 &#x1f680; 【本文仅供参考】其中需求实现的方式有多种&#xff0c;提供的代码并…

从0到1搞定在线OJ

目录 一、在线OJ的的原理 二、在线OJ的使用规则 三、注意事项 1.关于作弊 2.如何防止作弊 3.输入输出格式 4.换行问题 四、经典在线OJ坑人题目以及博主被坑经历 五、提交不成功及解决方法 六、如何得心应手的拿下OJ系统 七、在线OJ的骗分技巧 在线OJ&#xff08;Onl…

管理项目-查询数据

人事管理项目-查询数据模块 后端实现配置文件实体类Dao层测试前端实现1&#xff0e;创建Dept页面2&#xff0e;修改路由3 测试 后端实现 配置文件 在application.yml文件中配置数据库连接、JPA及端口等信息&#xff0c;代码如下&#xff1a; 实体类 配置完成后建立和表结构…

“出海热”仍在持续,进军东南亚市场谁能率先突围?

在油改电的趋势下&#xff0c;伴随钠电池车型的推出&#xff0c;电动两轮车市场被进一步激活。据艾瑞咨询不完全统计与估算&#xff0c;2022年国内两轮电动车销量约5010万辆&#xff0c;较去年增长15.2%&#xff0c;预计2023年销量达到5400万辆。持续增长的销量足以说明当下的国…

JeecgBoot低代码平台 3.5.2,仪表盘版本发布!重磅新功能—支持在线拖拽设计大屏和门户

项目介绍 JeecgBoot是一款企业级的低代码平台&#xff01;前后端分离架构 SpringBoot2.x&#xff0c;SpringCloud&#xff0c;Ant Design&Vue3&#xff0c;Mybatis-plus&#xff0c;Shiro&#xff0c;JWT 支持微服务。强大的代码生成器让前后端代码一键生成! JeecgBoot引领…

北京君正案例:数传网关的集大成者—积木式边缘网关

数传网关的集大成者 USR-M300产品集成了数据的边缘采集、计算、主动上报和数据读写&#xff0c;联动控制&#xff0c;IO采集和控制等功能&#xff0c;采集协议包含标准Modbus协议和多种常见的PLC协议&#xff0c;以及行业专用协议&#xff1b;主动上报采用分组上报方式&#xf…

如何靠自学成为一名网络安全工程师?

1. 前言 说实话&#xff0c;一直到现在&#xff0c;我都认为绝大多数看我这篇文章的读者最后终究会放弃&#xff0c;原因很简单&#xff0c;自学终究是一种适合于极少数人的学习方法&#xff0c;而且非常非常慢&#xff0c;在这个过程中的变数过大&#xff0c;稍有不慎&#…

电脑提示d3dcompiler_47.dll缺失怎么修复?

d3dcompiler_47.dll是 Microsoft 的 DirectX 11 核心组件之一&#xff0c;它主要用于编译和运行 Direct3D 11 应用程序和游戏。如果您的系统中缺少这个 DLL 文件&#xff0c;可能会导致一些程序无法正常运行&#xff0c;很多游戏跟图形处理软件都会运用到。如果电脑提示“找不到…

软考A计划-系统架构师-官方考试指定教程-(1/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

Elasticsearch数据库索引及数据操作

目录结构 前言数据库初始化索引操作创建索引获取索引获取所有索引删除索引 数据操作新增POST方式PUT方式 查询主键查询全量查询search 修改全量覆盖部分修改 删除 前言 Elasticsearch安装成功情况下&#xff1b;使用Postman请求操作数据库&#xff1b;浏览器插件实现Elasticsea…

Ubuntu做深度学习+ros怎么分区

正好要重装系统了&#xff0c;学习以下怎么分区 买了铠侠rc20 &#xff0c; 1T用来做Ubuntu系统盘 整理一下要安装的东西&#xff1a; 1.要装cuda &#xff0c;6G&#xff08; 安装在 /usr/local/cuda-11.1 &#xff09; 挂载点 /usr: 存放用户程序&#xff0c;一般在/usr/…

轨道列车自动驾驶和汽车自动驾驶的区别

轨道列车自动驾驶和汽车自动驾驶在一些方面存在明显的区别&#xff0c;主要是由于它们在运行环境和技术要求上的不同。以下是一些主要区别&#xff1a; 运行环境&#xff1a;轨道列车通常在封闭的轨道系统上运行&#xff0c;与其他车辆和行人的交互相对较少。相比之下&#xf…

华为企业组网实例:VRRP+MSTP典型组网配置

华为企业组网实例&#xff1a;VRRPMSTP典型组网配置 VRRPMSTP典型组网配置实验拓扑一、VLAN配置SW3配置SW4配置 二、Trunk配置SW3配置SW4配置SW1配置SW2配置 三、链路聚合四、MSTP配置公共配置SW1配置SW2配置分别在SW3、SW4上面验证 五、VRRP配置sw1配置sw2配置 六、VRRPMSTP的…

Kafka分区消息积压排查指南

针对某个TOPIC只有几个分区积压的场景&#xff0c;可以采用以下方法进行排查&#xff1a; 消息生产是否指定key&#xff1f; 如果指定了消息key&#xff0c;那么消息会指定生产到hash(key)的分区中。如果指定了key&#xff0c;那么有下列几种可能&#xff1a; 生产该key的消息体…

决策树理论

这个文本讨论了决策树模型中的基尼系数。当数据集的所有数据属于同一类时&#xff0c;基尼系数为0&#xff0c;因为此时无需进行分类&#xff0c;已经属于同一类别。因此&#xff0c;选项B是正确的。 决策树是一种用于分类和预测的机器学习模型。基尼系数是衡量数据集纯度的指标…