invokeDefine method
Invoke a define with arguments.
Maps to: @<name> [args]
Returns the expanded command, or null if define not found.
Implementation
@override
String? invokeDefine(String name, [List<String>? args]) {
final template = _state.getDefine(name);
if (template == null) return null;
var expanded = template;
final argList = args ?? [];
// Replace $$ with all args
expanded = expanded.replaceAll(r'$$', argList.join(' '));
// Replace $1-$9 with positional args
for (var i = 1; i <= 9; i++) {
final arg = i <= argList.length ? argList[i - 1] : '';
expanded = expanded.replaceAll('\$$i', arg);
}
return expanded;
}