Sublimetext 2, Rails, Haml :: цветовое кодирование методов rails в файлах .haml не работает

Я играю с Sublimetext2 для разработки приложения Rails (переключение с Textmate). У меня возникла проблема с цветовым кодированием методов rails в моих файлах .haml. Файлы с расширением .haml настроены на открытие с помощью пакета Ruby Haml, скопированного из Textmate. Проблема появляется в любой из цветовых тем, которые я пробовал.

Так, например, в файле:

_form.html.haml

= form_for @object do |f|
  f.label ...
  f.text_field ...
  ...

ключевые слова "form_for", "label", "text_field" должны быть красного цвета (при использовании темы Railscast). Но они белые.

Кажется, это не проблема с темой Railscasts, поскольку проблема (а не методы рельсов с цветовым кодированием) существует во всех темах в файлах .haml.

Я что-то упустил или это баг?

Спасибо, Мартин


person Arta    schedule 25.10.2012    source источник


Ответы (2)


Возможно, вам стоит попробовать другой пакет для haml — https://github.com/n00ge/sublime-text-haml-sass

person palaniraja    schedule 25.10.2012
comment
Я перепробовал столько разных бандлов (пакетов) HAML, сколько нашел, среди них и тот, который вы предложили. Не делает этого. Кстати, в пакете, который я использую, используются цветовые коды :javascript внутри -content_for в Sublimetext, в других, которые я пробовал, нет. - person Arta; 25.10.2012

Это недостаток файла HAML. Вот исправление:

    diff --git a/Packages/Rails/Ruby Haml.tmLanguage b/Packages/Rails/Ruby Haml.tmLanguage
    index 88d43f2..8bf14a4 100644
    --- a/Packages/Rails/Ruby Haml.tmLanguage       
    +++ b/Packages/Rails/Ruby Haml.tmLanguage       
    @@ -90,7 +90,7 @@
                                    </dict>
                            </dict>
                            <key>end</key>
    -                       <string>$|(?!\.|#|\{|\[|=|-|~|/)</string>
    +                       <string>$|(?!\.|#|\{|\[|(?:!?=)|-|~|/)</string>
                            <key>patterns</key>
                            <array>
                                    <dict>
    @@ -199,7 +199,7 @@
                    <key>rubyline</key>
                    <dict>
                            <key>begin</key>
    -                       <string>=|-|~</string>
    +                       <string>(?:!?=)|-|~</string>
                            <key>contentName</key>
                            <string>source.ruby.embedded.haml</string>
                            <key>end</key>

Однако я не уверен, как получить это вверх по течению. Вот мой оригинальный пост: http://www.sublimetext.com/forum/viewtopic.php?f=3&t=10246

person bronson    schedule 11.12.2012
comment
На самом деле, этот патч исправляет '!='. '=' должно работать из коробки (у меня сборка 2217). Выделяет ли «-» код Ruby правильно для вас? - person bronson; 12.12.2012
comment
Да, «-» правильно выделяется, «=» — нет. - person Arta; 29.05.2013