- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 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/
我是一名优秀的程序员,十分优秀!