【问题标题】:Bundle for Ruby 1.9 hash syntax, or way to modify existing matches?捆绑 Ruby 1.9 哈希语法,或修改现有匹配的方法?
【发布时间】:2012-07-13 17:00:12
【问题描述】:

我正在使用 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 文件中完成这项工作?感谢任何帮助。谢谢!

【问题讨论】:

    标签: textmate sublimetext2 textmatebundles


    【解决方案1】:

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

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

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

    (?![?!]) 末尾的负前瞻阻止它匹配 class?class! 等方法名称,因此在列表中添加冒号 (?![?!:]) 也将阻止它匹配 class: 等哈希键。

    【讨论】:

    • 这完美!我不认为我会在一百万年后发现这一点。非常感谢您回来并在这里留下答案,非常感谢。
    • 这让我整整一个星期。谢谢安迪!顺便说一句,该文件中还有一些其他正则表达式需要相同的处理。我在整个文件中搜索了那个否定的前瞻,并在有意义的地方添加了一个冒号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多