Как я могу встраивать дополнительные языки в HTML-пакет TextMate 2?
Пакет TextMate 2 "HTML" поставляется со встроенной поддержкой подсветки тегов HTML, содержимого CSS <style>
теги и содержимое JavaScript <script>
теги. Тем не менее, я бы хотел настроить его так, чтобы он также включал поддержку Pug и отключал <template lang="pug">
открывающий тег Как я могу встроить этот подсветчик Pug таким же образом, как встраивают существующие подсветки CSS и JavaScript?
2 ответа
Наконец-то у меня это получилось. Я установил Pug tmBundle, затем отредактировал встроенный пакет HTML, включив в него следующее:
{ begin = '(^[ \t]+)?(?=<(?i:template lang="pug")(?!-))';
end = '(?!\G)([ \t]*$\n?)?';
beginCaptures = { 1 = { name = 'punctuation.whitespace.embedded.leading.html'; }; };
endCaptures = { 1 = { name = 'punctuation.whitespace.embedded.trailing.html'; }; };
patterns = (
{ name = 'meta.embedded.block.html';
begin = '(?i)(<)(template)(?=\s|/?>)';
end = '(?i)((<)/)(template)\s*(>)';
beginCaptures = {
0 = { name = 'meta.tag.metadata.pug.start.html'; };
1 = { name = 'punctuation.definition.tag.begin.html'; };
2 = { name = 'entity.name.tag.html'; };
};
endCaptures = {
0 = { name = 'meta.tag.metadata.pug.end.html'; };
1 = { name = 'punctuation.definition.tag.begin.html'; };
2 = { name = 'source.pug'; };
3 = { name = 'entity.name.tag.html'; };
4 = { name = 'punctuation.definition.tag.end.html'; };
};
patterns = (
{ name = 'meta.tag.metadata.pug.start.html';
begin = '\G';
end = '(>)';
captures = { 1 = { name = 'punctuation.definition.tag.end.html'; }; };
patterns = ( { include = '#attribute'; } );
},
{ name = 'source.pug';
begin = '(?!\G)';
end = '(?=</(?i:template))';
patterns = ( { include = 'source.pug'; } );
}
);
},
);
},
Добавьте это вышеstyle
узор, и маркер Мопс выделит<template lang="pug">
блоки. В моем случае это было внутри.vue
файлы.
Проект github pug-tmbundle может решить проблему.
Автор, Давидриос, дает это описание:
Пакет TextMate для языка шаблонов Pug. Реализован в JSON-tmLanguage, включена скомпилированная версия tmLanguage. Все известные мне языковые возможности (включая некоторые недокументированные и причуды синтаксического анализатора Pug) и некоторые шаблоны увеличения / уменьшения отступа реализованы.
Для использования с PyPug также включен маркер, использующий Python вместо JavaScript, вы можете либо вручную выбрать Pug (Python) из списка синтаксиса, либо дать вашему файлу расширение.py.pug для автоматического выбора (только для Sublime Text). Также включен файл test.py.pug, который можно скомпилировать с помощью pypug для его проверки.
Последнее обновление от 16 сентября 2016 года, но в описании также сказано:
Это было сделано специально для Sublime Text 2, но было протестировано и работает с Textmate 2 и Sublime Text 3