Я многократно сжигаю несогласованные круглые скобки при написании кода python в vim. Мне нравится, как они обрабатываются для C-кода - vim выделяет красным все фигурные скобки, следуя непревзойденному паре. Я кратко рассмотрел файл синтаксиса c.vim
, чтобы попытаться понять его, но раздел, который обрабатывает ошибки в скобках, очень сложный. Может ли кто-нибудь объяснить, как работает этот код, и предложить, как я могу написать что-то подобное для кода python?
Пример кода C с несогласованными параметрами:
int main(void
{ /* brace highlighted in red */
} /* brace highlighted in red */
Поскольку код python не имеет фигурных скобок, чтобы выделить, нам нужно будет выбрать что-то другое (возможно, другие круглые скобки).
Кстати, я пробовал этот плагин vim, но я не был доволен поведением.
Edit:
Я использую python для генерации кода на С++ (язык, который любит круглые скобки и точки с запятой). У меня неприятная привычка оставлять трейлинг-код при вызове метода file.write()
. Было бы неплохо, если бы я смог заставить vim сделать эту ошибку более визуально очевидной.
Update:
Хорошо, вот что я пробовал до сих пор.
:syn region pParen transparent start="(" end=")" contains=ALL
:syn match pError display ")"
:hi def link pError Error
К сожалению, все это делает выделение в качестве ошибки правильного символа всех сбалансированных круглых скобок, что противоположно тому, что я хочу сделать. Я действительно не понимаю, что я здесь делаю (просто скопирован с существующего файла синтаксиса Си). Если бы кто-нибудь мог объяснить, что я сделал (неправильно), я был бы признателен.