如何用条件给暗镜中的文字上色
How to color words in codemirror with condition?
我在codemirror上构建了自己的语言,我有一个包含类名的数组我还有一个临时数组(当我键入类名时,我将这个类的字段加载到临时数组中)
例如,如果我有两个类:
第一个类的名字是Data,它的字段是: fname
,lname
,age
第二个类的名称是info,它的字段是:
mother
;father
当我输入codemirror Data时,temp数组包含(fname
, lname
, data
)当我输入codemirror info时,temp数组包含(mother
, father
)
我想要的
仅当它出现在自己的类名之后时,才以特定的颜色标记字段(即当我在codemirror Data.fname
上键入时,我想将fname标记为蓝色,但是当我在codemirror info.fname
上键入时,我不想将fname标记为蓝色,因为(fname不包含在类"info"中))
我的尝试
CodeMirror.defineMode("mymode", function() {
return {
token: function(stream,state) {
for (var i = 0; i <ClassName.length ; i++) {
if (stream.match(ClassName[i]) ) {
return "style1";
}
}
for (var i = 0; i <temp.length ; i++) {
if (stream.match(temp[i]) ) {
return "style2";
}
}
};
});
My problem in My try
数组temp的内容在codemirror上输入类名时发生了变化…所以发生的事情是:当我输入codemirror Data.fname
时,单词fname颜色为蓝色,但如果我输入codemirror Data.fname info.mother
(在我输入info之前)。母词fname颜色为蓝色,因为它包含在临时数组(fname
, lname
, data
)中,但在我键入info之后。母亲 temp数组的包含被更改为(mother
, father
)),所以fname的颜色变为黑色
**这张图片显示的是执行**
这里的单词"fname"颜色为蓝色
这里单词"fname"的颜色变成了黑色
我知道我的问题,因为数组temp的包含变化…但是我找不到解决它的方法……有什么帮助吗?
请查看codemmirror源代码中可用的各种语言模式(如python, javascript)等。您需要了解标记化,这是任何语言模式实现的基础。还要看一下codemmirror的主题,这样你的实现就可以支持你的语言的多个主题。
- I'我想放下画布上的文字.帮帮我
- 对象文字方法上的Javascript绑定不起作用
- 如何用javascript替换Jquery字符串上的新参数
- 角度 js - 如何用鼠标单击,然后在 ng-grid 上按 Enter 键
- 我想听听服务器上的更改,并相应地更新我的网页.我如何用Javascript做到这一点
- 如何用我在HTML5画布上绘制的src保存图像文件
- 若我知道移动设备上的屏幕大小,该如何分隔一行文字
- 在对象文字上调用函数,由字符串 - JavaScript 表示
- 是否可以在 javascript 中的对象文字上定义函数属性
- Array.fill 不同于赋值上的文字 2D 定义
- 有可能在画布上做一个彩虹文字吗
- 如何用jQuery替换document.getElementById('文件上传器')
- 我怎样才能在图表上写一些文字
- 我如何用代码破解我网站上的第三方iframe
- 如何用dfferentphp脚本上传文本文件
- 如何用#:这样的字符定义单词bounddry.[在javascript上的regex中
- 如何用箭头键在画布上移动图像html5
- 如何用javascript上传带有表单数据的大型JSON对象
- 在对象文字上调用eval的Javascript(带函数)
- 如何用条件给暗镜中的文字上色