Добавление ключевых команд и функций в синтаксис пакета Textmate 2
Я хочу добавить некоторые дополнительные определения подсветки синтаксиса в существующий пакет, но мне нужен общий совет о том, как это сделать. Я не строю синтаксис с нуля, и я думаю, что мой запрос довольно прост, но я думаю, что он связан с некоторыми тонкостями, для которых я нахожу руководство несколько непонятным при поиске ответа.
По сути, я пытаюсь заполнить определения синтаксиса для пакета Stata. Это здорово, но нет встроенной поддержки для автоматического выделения базовых команд и установленных функций, только несколько базовых управляющих операторов. Stata - это язык, который в основном используется для вызова множества различных предопределенных командных вызовов высокого уровня, таких как command foo bar, options()
, Соглашение состоит в том, что эти вызовы команд должны быть выделены.
Существует множество этих команд и заглушек, которые используются для удобства. Всего в базовой установке почти 3500. Даже оптимизация их с помощью помощника комплекта, который, очевидно, избавляет от проблемы заглушки, все еще дает огромный список регулярных выражений. Я могу легко сократить это до менее чем 1000 важных, но это все еще много. Есть также 350 "функций", которые я хотел бы сопоставить с синтаксисом function()
По сути, у меня есть 3 вопроса:
- Создаю ли я серьезную проблему, включив исчерпывающий список соответствующих определений?
- Как мне ограничить
command
выделять только тогда, когда он либо начинает строку, либо между начальной строкой и командой есть только пробел - Каков предпочтительный способ ограничения списка
functions()
выделить только тогда, когда они приложили скобки?