我正在使用最新版本的 Sublime Text 3。当键入 %i[foo bar]
时,Sublime 似乎无法识别这一点,而且我没有得到正确的突出显示。
有没有人遇到过这种情况?如果是这样,我有没有办法在我这边解决这个问题,或者这是 Sublime HQ 必须解决的问题?
最佳答案
符号数组的 %i[foo bar] # [:foo :bar]
文字符号仅为 implemented在 Ruby 2.0 中,而 ST3 附带的 Ruby 语言定义主要集中在 1.9 及更早版本。我搜索了一下,但不幸的是我找不到任何为 2.0 更新的 .tmLanguage
文件,更不用说包含这个文字符号了,所以我无法为您指出现成的解决方案.但是,我确实有一些建议。
首先,前往非官方 Sublime Text Issues tracker并发布错误报告。我们不确定开发人员对该列表的关注程度如何,但它至少扩大了问题的可见性,并可能会促使某人发布修复程序。也可以回复this thread在 Sublime Text 论坛上,也许可以引用您的问题。
第二个选项,如果你有很好的 regex-fu,是破解 Ruby.tmLanguage
文件并自己添加支持。我本来打算发布有关如何操作的说明,但后来我自己尝试了一下,它似乎有效,所以请随意使用我的工作:
- 转到
Preferences -> Browse Packages
在系统的文件资源管理器中打开Packages
文件夹。 - 创建一个名为
Ruby2
的文件夹。 - 复制 this gist 的内容到一个新文件中,并将其作为
Ruby2.tmLanguage
保存在您的Ruby2
目录中。 - 重新启动 Sublime,切换到有问题的代码,然后选择
View -> Syntax -> Ruby2
。这两行现在应该以相同的方式突出显示。这是使用 Neon Color Scheme 之前和之后的屏幕截图:
希望对您有所帮助。我不是 Rubyist,所以如果我犯了任何明显的错误,请告诉我。
根据我的(简短)研究,似乎确实需要更新版本的 Ruby.tmLanguage
来获得 2.0 中的所有新功能,因此希望您发布的任何问题都会促使人们开始/发布一个项目。我已经完成了 something similar对于 Python,但我的 Ruby skillz 不适合这个项目:)
祝你好运!
关于ruby - Sublime Text 3 无法识别 ruby 中的 %i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335957/