javascript - 如何向 CodeMirror 添加关键字(并更改其颜色)?

标签 javascript syntax-highlighting codemirror adobe-brackets code-editor

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

我设法通过修改 this code here 将“printf”添加为关键字并在关键字中添加“printf”。 但是,我想改变它的颜色,但没能做到。我怎么能这样做?

此外,与行注释(例如“//”)突出显示整行的方式相同,如果行以“#”开头,我也想这样做,同时更改颜色。

我很确定我需要修改“clike.js”文件以添加新关键字和一些其他 .css 文件以更改颜色,但我似乎无法解决。

感谢您的帮助。

最佳答案

解决了。

首先我改变了the 'clike.js' file添加以下“if” block 来处理我想要的更改。

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";
      }
    }
    ...

因此,在解析文件时,外部 block 会检查“#”。当检测到一个字母时,它会检查下一个字母是“i”还是“p”。
这是因为我想强调:

#include ...

#pragma ...

如果下一个字符是“i”,我会使用 stream.skipTo("") 跳到下一个空格,这样只有 #include 是突出显示。
如果找到“p”,我将改为使用 stream.skipToEnd() 以便突出显示整行。

return 语句然后返回一个字符串,该字符串与已找到的内容相关,主题 .css 文件中的相应样式指定诸如颜色或样式之类的内容。
例如,在我的例子中,括号默认灯光主题位于 Brackets.app/Contents/www/extensions/default/LightTheme/main.less
在此文件中,我添加了以下几行:

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

然后指定您希望该文本的颜色,但我假设也可以指定其他内容,例如粗体、斜体、可能是字体等。

如果你想创建一个新的返回类型 'test',你可以在你的 javascript 文件中 return "test"; 并且你的主题文件中的相应样式将被命名为 .cm -包括{...};

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

关于javascript - 如何向 CodeMirror 添加关键字(并更改其颜色)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27093527/

相关文章:

javascript - 如何在jquery/script中传递用户输入数据?我正在使用 codeigniter php 框架

用于大字符串的 Javascript 语法高亮器

javascript - CodeMirror 2 - 仅突出显示(无编辑器)

javascript - 在 IE 中调用 find next 时不要在 Codemirror 中突出显示光标

java - 选择后的 Spring MVC 细化下拉列表

javascript - 要求内部 Q promise

javascript - 如何在 JQuery 中循环 each() 3 次

android - 为什么eclipse一直高亮某个方法?

javascript - 如何使用语法高亮 GitBook

代码镜像 : how to limit height in editor