LINUX.ORG.RU

Своя подсветка синтаксиса в vim

 , ,


1

1

Всем привет! Есть DSL, в котором комментарии начинаются с решётки (#). Еще в DSL можно писать функции, в которых комментарии начинаются в C/C++ стиле, и комментарии с решетки запрещены. Типа того:

...some code
# comments
proc myfunc @{
     # ошибка! это не комментарий
     // нормальный коммент
     /* еще один
      * нормальный коммент */
@}
...come code

Сейчас я обхожусь этим:

syn region binpacComment start="#" end="$"
syn region binpacComment start="//" end="$"
syn region binpacComment start="\/\*" end="\*\/"
hi def link binpacComment Comment

Но это приводит к тому, что во всем файле просто подсвечиваются как комментарии все три вида: #, //, /* */

А хочется, чтоб вне функций подсвечивалось только #, а в функциях только // и /* */.

Заранее спасибо за любую помощь или пример.

Deleted

Так?

syn clear

syn region binpacComment start="#" end="$"

syn region binpacComment2 start="//" end="$" contained
syn region binpacComment2 start="\/\*" end="\*\/" contained
syn region binpacProc start="@{" end="@}" contains=binpacComment2

hi def link binpacComment Comment
hi def link binpacComment2 Comment

Подправь под себя: наверняка регулярка для процедуры должна быть уточнена.

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.