Я использую редактор ACE для синтаксиса, чтобы выделить систему BBCode на моем сайте, и в целом она хорошо работает. Единственное, что не является нашим эквивалентно многострочные комментарии:ACE Editor многострочное регулярное выражение
[nobbcode]
I am a demo of [b]BBCode[/b].
Anything in here is shown as plain text, with code left intact,
allowing people to show how it works.
[/nobbcode]
правило это:
{
token:[
"meta.tag.punctuation.tag-open.xml",
"meta.tag.tag-name.xml",
"meta.tag.punctuation.tag-close.xml",
"comment",
"meta.tag.punctuation.end-tag-open.xml",
"meta.tag.tag-name.xml",
"meta.tag.punctuation.tag-close.xml"
],
regex:/(\[)(nobbcode)(\])([\s\S]*?)(\[\/)(nobbcode)(\])/,
caseInsensitive:true
},
И он прекрасно работает в качестве примера, как это:
You can use [nobbcode][b]...[/b][/nobbcode] to designate bold text.
, где совпадение находится на одной строке, но, похоже, не похоже на многострочный текст.
Поддерживает ли ACE многорежимное регулярное выражение, и если да, я должен его разбить на части «комментировать, комментировать, комментировать»?
Может быть, вы уже смотрели на это [2014 Google группового обсуждения] (https://groups.google.com/forum/#!topic/ace-discuss/ fDFUOYghi8E), но, на всякий случай ... –
А, так это строка-лайн? Это имело бы смысл. Я считаю, что официальную документацию очень сложно понять порой ... Если это действительно так, то какой был бы самый простой способ реализовать здесь государства? Например, использовать push/pop или отдельное состояние? –
Я бы использовал некоторый 'isMultiLineComment', чтобы указать состояние, которое я думаю ... –