fixFunctionCalls static method

String fixFunctionCalls(
  1. String content,
  2. List<String> functionNames
)

Fix function calls to pass context parameter

Implementation

static String fixFunctionCalls(String content, List<String> functionNames) {
  var modifiedContent = content;

  for (final funcName in functionNames) {
    // Pattern: functionName() -> functionName(context)
    // Pattern: functionName(args) -> functionName(context, args)

    final emptyCallPattern = RegExp('\\b$funcName\\(\\s*\\)');
    modifiedContent =
        modifiedContent.replaceAllMapped(emptyCallPattern, (match) {
      return '$funcName(context)';
    });

    final withArgsPattern =
        RegExp('\\b$funcName\\((?!context)([^)])', multiLine: true);
    modifiedContent =
        modifiedContent.replaceAllMapped(withArgsPattern, (match) {
      return '$funcName(context, ${match.group(1)}';
    });
  }

  return modifiedContent;
}