我在codemirror上构建自己的语言,我有数组包含我的类的名称,我也有临时数组(当我输入类的名称然后我在temp数组中加载了这个类的字段)
例如,如果我有两个类:
头等舱的名称是数据,它的字段是:
fname
,
lname
,
age
第二类的名称是信息,其字段为:
mother
,
father
当我输入codemirror 数据时,临时数组包含(fname
,lname
,data
)
当我输入codemirror info 时,临时数组包含(mother
,father
)
仅在特定颜色的字段出现在自己的类名称之后(即当我在codemirror Data.fname
上键入时,我想为蓝色的单词 fname 着色但是当我输入codemirror info.fname
时,我不想用蓝色为 fname 添加颜色,因为( fname 不包含在类" info&#中34))
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";
}
}
};
});
数组 temp 的包含会发生变化...所以会发生什么:
当我输入codemirror Data.fname
然后单词 fname 颜色为蓝色但是如果我输入codemirror Data.fname info.mother
(在我键入info.mother之前,单词 fname 蓝色,因为它包含在临时数组(fname
,lname
,data
)中,但输入 info.mother 后包含temp数组更改为(mother
,father
))因此 fname 的颜色变为黑色
**此图片显示执行**
here the word "fname" color in blue
here the color of word "fname" change and became black
我知道我的问题,因为数组临时包含的内容正在发生变化......但我无法找到解决问题的方法......所以有任何帮助吗?