Vim-Region mit Schlüsselwörtern in Syntaxmustern

869
user14416

Ich muss eine benutzerdefinierte vim-Region erstellen, die Klassen und Strukturen bestimmt. Der Code zum Beispiel

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

Die Muster für Anfang und Ende werden wahrscheinlich geändert, aber das Problem ist, dass diese Art von Region nicht funktioniert, da classund structSchlüsselwörter sind.

Wie kann man dieses Problem umgehen?

1

1 Antwort auf die Frage

2
Ingo Karkat

Sie haben Recht mit dem Keyword-Match, das ein Match Ihrer neuen Region verhindert. Um dieses Problem zu umgehen, müssen Sie die in Ihrer Region enthaltenen Schlüsselwörter neu definieren:

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