StringTextNode constructor
StringTextNode({})
Implementation
StringTextNode({
required super.path,
required super.raw,
required super.comment,
required this.interpolation,
this.paramCase,
Map<String, Set<String>>? linkParamMap,
}) {
final escapedContent = _escapeContent(raw, interpolation);
final parsedResult =
_parseInterpolation(escapedContent, interpolation, paramCase);
_params = parsedResult.params;
// detect linked translations
this._links = Set<String>();
this._content = parsedResult.parsedContent
.replaceAllMapped(RegexUtils.linkedRegex, (match) {
final linkedPath = match.group(1)!;
links.add(linkedPath);
if (linkParamMap == null) {
// assume no parameters
return '\${_root.$linkedPath}';
}
final linkedParams = linkParamMap[linkedPath]!;
params.addAll(linkedParams);
final parameterString =
linkedParams.map((param) => '$param: $param').join(', ');
return '\${_root.$linkedPath($parameterString)}';
});
}