createUnit method

ScopeUnit createUnit(
  1. String identifier, {
  2. StyleName? styleName,
  3. RegExpRecipe? match,
  4. RegExpPair? matchPair,
  5. Map<GroupRef, StyleName>? captures,
  6. Map<GroupRef, StyleName>? beginCaptures,
  7. Map<GroupRef, StyleName>? endCaptures,
  8. List<ScopeUnit>? innerUnits()?,
})

Implementation

ScopeUnit createUnit(
  String identifier,
  {
    StyleName? styleName,
    RegExpRecipe? match,
    RegExpPair? matchPair,
    Map<GroupRef, StyleName>? captures,
    Map<GroupRef, StyleName>? beginCaptures,
    Map<GroupRef, StyleName>? endCaptures,
    List<ScopeUnit>? Function()? innerUnits,
  }
) {
  var unit = ScopeUnit._(
    identifier,
    isInline: false,
    baseSyntax: this,
    createBody: (debugName, innerPatterns) =>
      _smartCreateBody(
        styleName: styleName,
        match: match,
        matchPair: matchPair,
        captures: captures,
        beginCaptures: beginCaptures,
        endCaptures: endCaptures,

        debugName: debugName,
        innerPatterns: innerPatterns,
      ),
    createInnerUnits: () => _linker.linkInnerUnits(
      innerUnits: innerUnits,
      parentStyleName: styleName,
      parentIdentifier: identifier,
    ),
  );
  _repoUnits.add(unit);
  return unit;
}