Как активировать дополнения Zen Coding внутри шаблонов Handlebars с помощью Sublime Text 2

Я установил Zen Coding для Sublime Text 2. Он работает при расширении аббревиатур за пределами тегов, но не внутри этих тегов script (что имеет смысл, поскольку там ожидается js). Тем не менее, это было бы полезно при редактировании шаблонов Handlebars.

Кто-нибудь знает, как настроить/модифицировать плагин Zen Coding ST2 для достижения этой цели?

Спасибо


person jk01    schedule 08.05.2012    source источник


Ответы (3)


Команда теперь называется expand_abbreviation_by_tab (я использую Sublime Text 3).

Чтобы использовать Emmet внутри встроенного js (область сценария x-handlebars), просто вставьте эту команду в файл раскладки Key Bindings — User:

{
    "keys": [
        "tab"
    ],
    "command": "expand_abbreviation_by_tab",
    "context": [
        {
            "operand": "source.js.embedded.html",
            "operator": "equal",
            "match_all": true,
            "key": "selector"
        }
    ]
}

Добавьте любую область, которая вам нужна, чтобы Emmet работал как значение ключа operand.

Лучше всего то, что вам не нужно перезапускать Sublime. Он начнет работать прямо сейчас!

person luis19mx    schedule 22.02.2014

В ./ZenCoding/Default.sublime-keymap есть набор селекторов области контекста, которые определяют, какие действия активны при редактировании разных частей файла. Это те же самые селекторы областей, которые использует TextMate.

Область по умолчанию для команды expand_zen_abbreviation_on_tab (на момент написания это последняя запись в файле) не включает селектор для тегов <script>. Нам нужно добавить его.

Чтобы найти правильную область, поместите курсор где-нибудь в документе ST2 и нажмите ctrl+shift+p. Строка состояния покажет вам селекторы для региона, в котором вы находитесь. В случае тега script, сохраненного в файле .html, он возвращает:

text.html.basic source.js.embedded.html

Учитывая эту информацию, мы добавляем запись source.js.embedded.html в свойство operand команды expand_zen_abbreviation_on_tab и вуаля, кодирование zen будет работать внутри тегов скрипта.

Вот мой expand_zen_abbreviation_on_tab с добавленным контекстом...

 {"command": "expand_zen_abbreviation_on_tab",
  "context": [{"key": "selector",
               "match_all": true,
               "operand": "source.css - source.css.embedded, text.xml, text.html -source -meta.tag, meta.scope.between-tag-pair.html -source, source.js.embedded.html",
               "operator": "equal"},
              {"key": "selection_empty",
               "match_all": true,
               "operand": true,
               "operator": "equal"},
              {"key": "is_zen", "match_all": true}],
  "keys": ["tab"]}]
person Alan Norton    schedule 19.07.2012
comment
Считаете ли вы, что эта функция была добавлена ​​​​в Zen Coding / Emmet, чтобы разрешить использование внутри области сценария? - person Ravi Ram; 20.03.2013

в строке 31 «zencoding/zen_settings.py» измените «фильтры»: «html, css» на «фильтры»: «html, css, hbs» также можете добавить сюда другие типы файлов, такие как erb, если вы используете рельсы.

person dbkbali    schedule 01.06.2012