基本上,我试图以我想要的方式突出显示以下咖啡脚本代码。可以在这里找到咖啡脚本函数的语法解释。
nameHere = (tstamp, moo, boo) ->
...
名称 tstamp、moo 和 boo 应该是粉红色的(没有别的,不是逗号,也不是括号),因为它们是 lambda 函数的参数。
highOrderFun ((x) -> x * x) someList
这里是第一个 x 是参数。参数可以有默认参数:
class Foo
meth: (msg = "Hello", bar = "foo") ->
....
默认参数本身可以是变量:
defColor = "red"
print = (msg, color = defColor) ->
...
somsg
和color
above 应该突出显示,但不是defColor
. 一个更棘手的情况是带有默认参数的函数,它们本身就是函数。我认为 emacs 的 font-lock 很难正确突出显示,但我还是把它包括在内:
funTakingFuns = (f1 = ((a, b) -> a*b), f2 = ((c, d) -> c/d)) ->
...
这似乎在 emacs 中实现起来相当复杂,因为您希望突出显示是上下文敏感的。我已经阅读了有关 font-lock 的文档,但无法弄清楚。
如果有人能告诉我要设置什么以font-lock-defaults
使其语法突出显示我想要的方式,我将不胜感激。
更新显示更多咖啡脚本语法示例。