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

标签 ruby sublimetext sublimetext3

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

有没有人遇到过这种情况?如果是这样,我有没有办法在我这边解决这个问题,或者这是 Sublime HQ 必须解决的问题?

enter image description here

最佳答案

符号数组的 %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 文件并自己添加支持。我本来打算发布有关如何操作的说明,但后来我自己尝试了一下,它似乎有效,所以请随意使用我的工作:

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

Ruby literal before and after

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

根据我的(简短)研究,似乎确实需要更新版本的 Ruby.tmLanguage 来获得 2.0 中的所有新功能,因此希望您发布的任何问题都会促使人们开始/发布一个项目。我已经完成了 something similar对于 Python,但我的 Ruby skillz 不适合这个项目:)

祝你好运!

关于ruby - Sublime Text 3 无法识别 ruby​​ 中的 %i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335957/

相关文章:

ruby-on-rails - 如何检测 Rails 应用程序并识别内存/性能瓶颈?

ruby-on-rails - 如何在不使用表单助手的情况下使用 Rails Paperclip 上传图像

loops - 一旦进入无限循环,如何终止从Sublime Text 2终端运行的程序?

macos - 如何在 Sublime Text 3 中使用 Mac 操作系统别名?

sublimetext3 - Sublime Text 3 自定义插件未加载

ruby - 如何切换到使用 Homebrew 安装的 ruby​​ 1.9.3?

ruby - 将 ruby​​ 日期显示为 RFC 3339 时间戳

python - 使用sublime text 3删除U+200B零宽空格字符

vim - NERDTree 实时预览(如 sublime 侧边栏)

sublimetext3 - 重置 Sublime Text 3 的字体大小快捷方式