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

时间:2013-12-02 19:10:34

标签: ruby sublimetext sublimetext3

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

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

enter image description here

1 个答案:

答案 0 :(得分:9)

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

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

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

  1. 转到Preferences -> Browse Packages打开系统文件资源管理器中的Packages文件夹。
  2. 创建名为Ruby2
  3. 的文件夹
  4. this gist的内容复制到新文件中,并将其作为Ruby2保存在Ruby2.tmLanguage目录中。
  5. 重新启动Sublime,切换到有问题的代码,然后选择View -> Syntax -> Ruby2。现在应该以相同的方式突出显示这两行。这是使用Neon Color Scheme
  6. 之前和之后的屏幕截图

    Ruby literal before and after

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

    从我的(简短)研究中,似乎需要为{2.0}中的所有新功能提供Ruby.tmLanguage的更新版本,因此希望您发布的任何问题都会促使某人启动/发布项目。我已经为Python完成了something similar,但我的Ruby技能并不适合这个项目:)

    祝你好运!