1

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

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

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

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

1 ответ1

2

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .