splitGenericArgs function

List<String> splitGenericArgs(
  1. String argsString
)

Implementation

List<String> splitGenericArgs(String argsString) {
  var to = <String>[];
  var lastPos = 0;
  var inBrackets = 0;
  for (var i = 0; i < argsString.length; i++) {
    var c = argsString[i];
    if (inBrackets > 0) {
      if (c == '<')
        inBrackets++;
      else if (c == '>') inBrackets--;
      continue;
    }
    if (c == '<') {
      inBrackets++;
      continue;
    }
    if (c == ',') {
      var arg = argsString.substring(lastPos, i - lastPos).replaceAll(" ", "");
      to.add(arg);
      lastPos = i + 1;
    }
  }

  var lastArg = argsString.substring(lastPos).replaceAll(" ", "");
  ;
  to.add(lastArg);
  return to;
}