Kotlin的鱼眼/坩埚语法突出显示

截至Crucible 4.2.1版本,Kotlin文件没有内置的语法高亮支持。 我已经填写了一个function请求 。

但是,现在,唯一的可能是添加一个自定义的语法配置,如这里所述。

有没有人已经做到了,可以共享配置?

我最终自己创建了这个文件。 它基于Java配置,但使用Kotlin关键字。

如果您不喜欢我正在使用的列表,该项目还包含一个脚本来生成关键字的前缀树。

您可以在下面find该文件的内容:

syntaxdef kotlin { /\s+/m : ; #keywords /(a(bstract|nnotation|s)|break|c(atch|lass|o(mpanion|n(st|tinue))|rossinline)\ |d(ata|elegate|o|ynamic)|e(lse|num|xternal)|f(i(eld|le|nally)|or|un|alse)|get\ |i(f|mport|n(fix|it|line|terface)|s|t)|n(oinline|ull)|o(bject|pe(n|rator)|ut)\ |p(a(ckage|ram)|roperty)|re(ceiver|ified|turn)|s(e(aled|tparam)|u(per|spend))\ |t(ailrec|h(is|row)|r(y|ue)|ype(alias|of))|va(l|rarg)|wh(en|ile))\b/ : { region { type=keyword; index=word; } } /[\p{L}_\$][\p{L}\p{N}_\$]*/ : { region { type=identifier; index=word; } } #annotation /@[\p{L}_\$][\p{L}\p{N}_\$]*/ : { region { type=annotation; index=word; } } # string literals /"/ : { context { /\\"/: ; /\\./: ; /$/m : exit; "\"" : exit; } region ${ALL} { type=string; } } # char literal /'/ : { context { /\\./: ; /$/m : exit; "'" : exit; } region ${ALL} { type=char_literal; } } /\/\/.*$/m : { todo(${0}); region { type=comment; index=prose; findlinks=true; } } /\/\*\*(.*?)\*\//s : { javadoc(${1}); region { type=comment; index=prose; findlinks=true; } } context javadoc { /(\B@[a-zA-Z0-9-_.]+)\s*([^@\*]*)/ : { region ${1} { type=commentmeta; } } } /(0x[0-9a-f][0-9a-f_]*l?)|(0b[0-1][0-1_]*l?)|([0-9][0-9_]*(\.[0-9][0-9_]*)?|\.[0-9][0-9_]+)(e(\+|-)?[0-9][0-9_]*)?(f|l|d)?/i : { region { type=numeric; } } /\/\*(.*?)\*\//s : { todo(${1}); region { type=comment; findlinks=true; } region ${1} { index=prose; } } context todo { /(?i)todo\s.*/ : { region { type=todo; } } } }