substituteArgs function
Substitutes positional arguments into a template body.
Supports:
$1,$2, ... positional args$@and$ARGUMENTSfor all args joined by a space${N:-default}for arg N with a default when missing/empty${@:N}for args from N onwards${@:N:L}for L args starting at N
Implementation
String substituteArgs(String content, List<String> args) {
final allArgs = args.join(' ');
return content.replaceAllMapped(
RegExp(
r'\$\{(\d+):-([^}]*)\}|\$\{@:(\d+)(?::(\d+))?\}|\$(ARGUMENTS|@|\d+)',
),
(match) => _substituteMatch(match, args, allArgs),
);
}