У меня есть собственный язык, для которого я хочу обеспечить подсветку синтаксиса в коде Visual Studio.
В этом языке строковые литералы начинаются и заканчиваются двойной или одинарной кавычкой. Строковый литерал, начинающийся с двойной кавычки, может содержать одинарные кавычки и наоборот. Никакого другого экранирования кавычек не происходит. Но независимо от типа начальной кавычки литералы могут занимать несколько строк.
В моем файле tmLanguage.json
я попробовал эти регулярные выражения:
{
"match": "'[^']*'",
"name": "string.quoted.single.rss"
},
{
"match": "\"[^\"]*\"",
"name": "string.quoted.double.rss"
}
К сожалению, это работает только для однострочных литералов. затем я попытался
{
"match": "(?s)'[^']*'",
"name": "string.quoted.single.rss"
},
{
"match": "(?s)\"[^\"]*\"",
"name": "string.quoted.double.rss"
}
Но с модификатором (?s)
подсветка синтаксиса вообще не работает.
Есть ли способ сопоставить многострочные строки?
s
влияет только на.
, а у вас его нет. - person revo   schedule 27.07.2018