Я пишу файл подсветки синтаксиса для языка (которого еще не было) в Vim.Синтаксис подсветки начала и конца прозрачных областей в Vim
Аналогичная проблема с тем, что я застрял, будет выделение списков в Python: я хочу, чтобы элементы списка отображались нормально, если они являются типами, которые язык разрешает находиться в таком списке, в то время как список структура (т.е. [ , ]
следует выделить в своем цвете.
в настоящее время я использую
syn region myList start='\[' end=']' transparent contains=myList,myDelimiter,myNumber,myString
syn match myDelimiter ',' contained
myList
содержит себя, чтобы вложенные списки (а следовательно, правовые дополнительные ]
конечных маркеров), не нарушая область. Однако, так как это прозрачный (чтобы подчеркнуть (myNumber
и myString
в этом примере)), начало [
и ]
концевые скобки остаются без подсветки.
myDelimiter
группа может рассматриваться как обходной путь, чтобы выделить, по крайней мере запятые (хотя это довольно бессмысленно без остальной части структуры, т.е. начало и конец [
]
). Добавление [
и ]
к myDelimiter
шаблону, как это:
syn match myDelimiter ',\|\[\|]' contained
Перерывы myList
область и делает его активировать на несвязанных частей файла (вне любого списка, тем самым нарушая другие моменты синтаксиса для элементов не допускается в Я думаю, проблема в том, что конец больше не считается концом, а разделителем внутри большого массива, охватывающим последний массив в файле).
Я попытался добавить matchgroup=myList
к syn region myList ...
(и убедившись, что он имел соответствующую hi myList ctermfg=red
запись в моем ColorScheme), но это ничего не изменило.
Есть ли способ исправить это?
': help: syn-region' и проверьте определение' matchgroup = '. Посмотрите, помогает ли это. – Vitor
Спасибо, но как упоминалось во втором последнем абзаце, я пытался, и, к сожалению, это не сработало. –