Bundle for Ruby 1.9哈希语法,还是修改现有匹配的方法?

时间:2012-07-13 17:00:12

标签: textmate sublimetext2 textmatebundles

我正在使用Rails并在SublimeText中使用Ruby 1.9,但它使用Ruby 1.9的新哈希语法进行了一些古怪的突出显示。

例如,使用以下哈希,这对于rails非常常见:

<%= link_to some_page_here_path, class: "btn btn-primary" %>

class关键字突出显示,当它实际上不是真正的关键字,而只是一个简单的哈希键。我更喜欢它是否被设计为符号(它在Ruby 1.9中)而不是保留字。这适用于其他保留字,'for','while','do'等。

有没有办法在现有的Ruby.tmLanguage或已经完成的tmLanguage文件中使这个工作?感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,所以我继续编辑了Ruby.tmLanguage文件来修复它。

您可以通过搜索keyword.control.ruby的文件找到保留关键字的定义;相应的正则表达式看起来像

(?&lt;!\.)\b(BEGIN|begin|case|class|...|when|while)\b(?![?!])

结尾处的否定前瞻(?![?!])阻止它匹配class?class!等方法名称,因此在列表(?![?!:])中添加冒号也会阻止它匹配哈希密钥如class: