一直难以忍受在做 Code Review 时,Phabricator 无法对 kotlin 代码进行高亮显示,直到今天项目的阶段性开发终于告一段落进入测试,于是着手处理该问题。
Phabricator 对语法高亮有两种支持方式,一种是其自带的高亮,还是一种是对 pygments 的集成。在 Phabricator 的设置界面上提到,如果想支持更多种语言的语法高亮,可以启用 pygments,于是我就配置为使用 pygments。
Kotlin 的语法不高亮,一开始我以为是 pygments 不支持,但是 google 这个问题时,到了 pygments 的官网,我发现它从自 1.5 版本起就已经有了 kotlin 的语法分析器。我查看了服务器上的 pygments 模块,是1.6的版本,那也就是说 pygments 应该已经支持了 kotlin 的语法高亮。
继续 google,找到了 Phabricator 官网上对 Phabricator 的修改的一条 Code Review 的记录:https://secure.phabricator.com/D16428#inline-52333 。根据它的修改,我到 Phabricator 的目录下去找 PhutilPygmentsSyntaxHighlighter.php
文件,但却没找到。不过其中一条评论(https://secure.phabricator.com/D16428#209650 )提醒了我,中间过程略,最后我到 Phabricator 的配置页面中修改了两项配置,并终于配置成功。
以下是我所作的配置修改。
在 Phabricator 首页,点击 Config
进入配置页面,然后点击 Core Settings
,在右面板中找到语法高亮的配置项 Syntax Highlighting
,进去之后,修改 pyments.dropdown-choices 的配置。参考其全局默认配置,拷贝了该配置,然后在里面加入一项:
1 | "kt": "Kotlin", |
点击 Save Config Entry
保存。
接着点击 syntax.filemap
,参考刚才提到的 CodeReview 的评论(https://secure.phabricator.com/D16428#209650 ),拷贝一下全局配置,并且在配置中新增 "@\\.kt$@": "kotlin"
一项,注意 json 中的 ,
。
保存之后,再看看 Audits 中的语法高亮果然多了一项 Kotlin
,而且代码中的关键字也能高亮起来了。
如果没有起作用,可尝试清一下缓存。
具体为进入 Phabricator
的应用目录,执行以下命令清一下缓存:
1 | ./bin/cache purge --all |