expand method
The basic rules this block stands for. Called once per block.
Implementation
@override
List<Rule> expand() {
final closeText = end ?? quote;
final close = _escape(closeText);
final closing = doubled
? '$close(?!$close)'
: lastInRun
? '$close(?!${_escape(closeText[closeText.length - 1])})'
: close;
final escape = this.escape;
return [
RegionRule(
begin: '${prefix ?? ''}${_escape(quote)}',
end: multiline ? closing : '$closing|\$',
scope: scope,
rules: [
if (doubled) TokenRule('$close$close', scope: Scopes.stringEscape),
if (escape != null)
TokenRule('${_escape(escape)}[\\s\\S]', scope: Scopes.stringEscape),
...rules,
],
),
];
}