Vim регион с ключевыми словами в шаблонах синтаксиса

Мне нужно создать пользовательский регион vim с определением классов и структур. Код, например,

syn region myCxxClass start="\(class\|struct\)\_[ \t]\+" end="}[^;]*;" transparent

Шаблоны начала и конца, вероятно, будут изменены, но проблема в том, что этот тип региона не работает, потому что class а также struct являются ключевыми словами.

Как обойти эту проблему?

1 ответ

Решение

Вы правы в том, что соответствие ключевого слова препятствует совпадению вашего нового региона. Чтобы обойти это, вам нужно переопределить ключевые слова, которые будут содержаться в вашем регионе:

syn clear cStructure
syn clear cppStructure
syn keyword cStructure struct contained
syn keyword cppStructure class contained
syn region myCxxClass start="\(class\|struct\)\_[ \t]\+" end="}[^;]*;" contains=cStructure,cppStructure
Другие вопросы по тегам