Я работаю над подсветкой синтаксиса для языка программирования, не поддерживаемого кодом Visual Studio.Подсветка работает хорошо, но я сталкиваюсь с проблемой выделения следующих фрагментов кода:
pool[] Test1 t1;
pool[1] Test2 t2;
pool[10] Test3 t3;
Я выделяю слово «пул», используя:
"storages": {
"patterns": [{
"name": "storage.type.ceu",
"match": "\\bpool\\b"
}]
},
и это работает, но я хочу выделить слова Test1, Test2 и Test3.
Моя единственная идея - использовать отрицательный взгляд сзади, например:
(?<=pool\[\d*\]\s+)([A-Z])\w+
Я создалонлайновая ссылка с этой идеей: https://regexr.com/4793u
Но онигурума (регулярное выражение, используемое TextMate, а также Ruby) не позволяют использовать lookaround.От de doc :
(?=subexp) look-ahead
(?!subexp) negative look-ahead
(?<=subexp) look-behind
(?<!subexp) negative look-behind
Subexp of look-behind must be fixed-width.
But top-level alternatives can be of various lengths.
ex. (?<=a|bc) is OK. (?<=aaa(?:b|cd)) is not allowed.
In negative look-behind, capturing group isn't allowed,
but non-capturing group (?:) is allowed.
Кто-нибудь знает какие-либо альтернативы, чтобы выделить этот синтаксис?