Javascript 如何在CodeMirror中添加关键字(并更改其颜色)?

Javascript 如何在CodeMirror中添加关键字(并更改其颜色)?,javascript,syntax-highlighting,codemirror,adobe-brackets,code-editor,Javascript,Syntax Highlighting,Codemirror,Adobe Brackets,Code Editor,我目前正在使用括号(代码编辑器)创建一些C源文件。 它使用CodeMirror来处理语法突出显示,我现在已经尝试了一段时间,尝试向它添加关键字 我通过修改并向关键字中添加“printf”,成功地将“printf”添加为关键字。 然而,我想改变它的颜色,但一直无法做到这一点。我怎么能这样做 此外,与“//”等行注释突出显示整行一样,如果行以“#”开头,我也希望这样做,同时更改颜色 我很确定我需要修改'clike.js'文件来添加新的关键字和一些其他的.css文件来更改颜色,但我似乎无法解决这个问题

我目前正在使用括号(代码编辑器)创建一些C源文件。 它使用CodeMirror来处理语法突出显示,我现在已经尝试了一段时间,尝试向它添加关键字

我通过修改并向关键字中添加“printf”,成功地将“printf”添加为关键字。 然而,我想改变它的颜色,但一直无法做到这一点。我怎么能这样做

此外,与“//”等行注释突出显示整行一样,如果行以“#”开头,我也希望这样做,同时更改颜色

我很确定我需要修改'clike.js'文件来添加新的关键字和一些其他的.css文件来更改颜色,但我似乎无法解决这个问题

谢谢你的帮助。

解决了这个问题

首先,我更改了添加以下“if”块来处理我想要的更改

function tokenBase(stream, state) {
    var ch = stream.next();
    if (ch == "#") {
      if (stream.eat("i")) {
        stream.skipTo(" ")
        return "include";
      }
      else if (stream.eat("p")) {
        stream.skipToEnd();
        return "pragma";
      }
    }
    ...
因此,在解析文件时,外部块将检查“#”。当检测到一个字母时,它会检查下一个字母是“i”还是“p”。
这是因为我想强调:

#include ...

如果找到一个“i”作为下一个字符,我将使用
stream.skipTo(“”
)跳到下一个空格,以便只突出显示
#include

如果找到一个“p”,我将使用
stream.skipToEnd()
,以便突出显示整行

return语句然后返回一个字符串,该字符串与主题中找到的内容和相应的样式相关。css文件指定颜色或样式等内容。
例如,在我的例子中,括号默认灯光主题位于
括号.app/Contents/www/extensions/default/LightTheme/main.less

在此文件中,我添加了以下行:

.cm-pragma {color: #a50000;}
.cm-include {color: #A0522D;}
然后,它指定了您希望文本的颜色,但我假设还可以指定其他内容,例如粗体、斜体、可能的字体等

如果您希望创建一个新的返回类型“test”,您将
返回“test”和主题文件中相应的样式将命名为
.cm include{…}

希望这能对其他想做同样事情的人有所帮助

.cm-pragma {color: #a50000;}
.cm-include {color: #A0522D;}