Sublime Text 3无法识别ruby中的%i

Kyl*_*cot 4 ruby sublimetext sublimetext3

我正在使用Sublime Text 3的最新版本.当键入%i[foo bar]Sublime似乎没有认识到这一点,我没有得到正确的突出显示.

还有其他人经历过这个吗?如果是这样,有没有办法可以解决这个问题,或者这是Sublime总部需要解决的问题吗?

在此输入图像描述

Mat*_*DMo 9

%i[foo bar] # [:foo :bar]符号数组的文字符号仅在Ruby 2.0中实现,而ST3附带的Ruby语言定义主要集中在1.9及更早版本.我搜索了一下,但不幸的是我找不到任何.tmLanguage更新为2.0的文件,更不用说包含这个文字符号了,所以我不能指出你现成的解决方案.但是,我确实有一些建议.

首先,转到非官方的Sublime Text Issues跟踪器并发布错误报告.我们不确定开发人员对这个列表给予了多少关注,但它至少扩大了问题的可见性,并可能促使某人发布修复.您也可以在Sublime Text论坛上回复此主题,并可能引用您的问题.

第二个选项,如果你有很好的正则表达式,就是破解Ruby.tmLanguage文件并自己添加支持.我打算发布如何做的指示,但后来我自己尝试了它似乎工作,所以随意使用我的工作:

  1. 转到Preferences -> Browse Packages打开Packages系统文件资源管理器中的文件夹.
  2. 创建一个文件夹,名为Ruby2.
  3. 将此要点的内容复制到新文件中,并将其保存在Ruby2目录中Ruby2.tmLanguage.
  4. 重新启动Sublime,切换到有问题的代码,然后选择View -> Syntax -> Ruby2.现在应该以相同的方式突出显示这两行.这是使用霓虹色方案的前后截图:

之前和之后的Ruby文字

我希望这有帮助.我不是Rubyist,所以如果我犯了任何明显的错误,请告诉我.

从我的(简短)研究来看,似乎需要更新版本的Ruby.tmLanguage2.0 中的所有新功能,所以希望您发布的任何问题都会促使某人开始/发布项目.我已经为Python 做了类似事情,但是我的Ruby技能并不适用于这个项目:)

祝好运!