GOOGLE ADS

понедельник, 11 апреля 2022 г.

Как встроить встроенный синтаксис С++ в определение другого языка?

У меня есть собственный файл синтаксиса Perl для Sublime Text 3, и я хотел бы добавить поддержку подсветки для встроенного кода C++.

Код inline C++ всегда начинается __CPP__ и заканчивается __END__ среди кода perl.

Я использую подход «встроить/сопоставить/экранировать», но подсветка синтаксиса кода C++ не изменится (получение области действия с помощью ctrl-alt-shift-p по-прежнему отображается как source.perl).

Вот правило, которое я использую в своем файле синтаксиса:

 contexts:
main:
- include: inline-cpp
...lot of rules...

inline-cpp:
- match: '__CPP__'
embed: scope:source.c++
embed_scope: source.c++.embedded
escape: '__XXX__'

Пожалуйста, может кто-нибудь помочь мне понять, что я делаю неправильно?


Решение проблемы

Решено поместить includeв prototypeраздел вместо main:

 contexts:
main:
...
prototype:
- include: inline-cpp
inline-cpp:
- match: '__CPP__'
embed: scope:source.c++
embed_scope: source.c++.embedded
escape: '__XXX__'

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...