Sublime Text - Расширение синтаксиса HTML внутри нового "HTML (Custom)" синтаксиса
Фон
Я работаю с языком Webclerk, который использует пользовательские теги для запроса к 4D-базе данных. Он работает аналогично PHP. Вместо .php
файл, который обрабатывается в HTML, используется файл '.wc', который обрабатывается в HTML.
Вместо чего-то вроде: <?php echo $variable; ?>
это будет выглядеть _jit_ echo $variable; jj
<?php
знак равно _jit_
, ?>
знак равно jj
,
В Sublime Text, когда PHP выбран в качестве синтаксиса, PHP выделяется другим цветом блока, поверх выделения HTML. Я хотел бы сделать то же самое для этих специальных тегов.
Меня действительно не волнует выделение текста в скобках. Я был бы полностью удовлетворен, если бы у меня был цвет подсветки / фона, начинающийся и заканчивающийся тегами.
Что я сделал
Я установил Диспетчер пакетов и Просмотр ресурсов пакетов, а затем извлек пакеты PHP и HTML, чтобы проверить их. Я также изучал уроки. Я сталкиваюсь с проблемой с двумя различными типами подсветки синтаксиса (.tmLanguage против.sublime-синтаксиса). По первому пути много информации, по второму очень мало. Я чувствую, что просто начать и остановить подсветку на основе двух тегов не так уж сложно.
Когда я открыл пакет HTML, я получил:
Comments.tmPreferences
HTML.sublime-syntax
Miscellaneous.tmPreferences
Symbol List - ID.tmPreferences
encode_html_entities.py
html.sublime-snippet
html_completions.py
Почти ни один из них не упоминается в учебниках. Я попытался просто изменить имена HTML на Webclerk, и мне удалось получить новый синтаксис в списке. Но когда я редактировал теги, ничего не изменилось в том, что было выделено.
Вопрос
Мне интересно, смогу ли я получить некоторые подсказки о том, с чего начать, о том, что означают эти файлы, и, возможно, о любых примерах, когда люди расширяли HTML раньше.
1 ответ
В основном вы пытаетесь определить пользовательскую область с помощью селекторов регулярного выражения начала и конца, которые описаны здесь: http://sublimetext.info/docs/en/extensibility/syntaxdefs.html
Я также натолкнулся на это интересное обсуждение на возвышенном текстовом поле от кого-то, кто пытается сделать точно то, что вы пытаетесь сделать http://www.sublimetext.com/forum/viewtopic.php?f=6&t=6207 Есть некоторые полезная информация и советы в ней.
Я бы начал в HTML.sublime-package
пакет внутри HTML.tmLanauage
В строке 598 (в моей настройке) есть определение для начала и конца тегов php, оно выглядит как регулярное выражение, которое распознает теги и выделяет их
КСТАТИ .sublime-package
Это просто zip-файлы, вы можете переименовать их и распаковать. затем поместите извлеченную папку внутрь %APPDATA%\Sublime Text 3\Installed Packages
запустить его