Подсветка синтаксиса vim только тогда, когда за ней следуют отрицательные слова - PullRequest
0 голосов
/ 17 февраля 2019

Я пишу синтаксический плагин, который выделяет определенные ключевые слова в моем журнале.Но у меня была проблема с выделением только в том случае, если за ним следовало слово с отрицательным результатом.

Например, я не хочу выделять при успешном завершении,

result:good
result:0x0000

Однако я быхотел бы выделить

result:bad
result:notready
result:0x0001
result:0xffff
result:0x0002

, но я не могу сделать регулярное выражение для этого отрицательного результата.Могу ли я запросить вашу поддержку, пожалуйста?

PS: я пробовал

syntax match error_result "\vresult:(good|0x0000)@!"

Но оставшаяся часть не выделяется после: (двоеточие).

1 Ответ

0 голосов
/ 18 февраля 2019

Шаблон @! соответствует нулевой ширине .Чтобы выделить все после двоеточия, мы можем добавить .* (любое количество любых символов) после шаблона, чтобы он соответствовал остальной части строки, только если (good|0x0000) группа не соответствует .

syntax match error_result "\vresult:(good|0x0000)@!.*"

Если вы хотите, чтобы текст после result: был выделен, но совпадал с тем же содержимым, добавьте последовательность \zs, с которой должно начинаться совпадение (выделение),Например:

syntax match error_result "\vresult:(good|0x0000)@!\zs.*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...