Map? _parameterInfo()

in lib/parameter_popup.dart [195:234]


  Map<String, int>? _parameterInfo(String source, int offset) {
    var parameterIndex = 0;
    int? openingParenIndex;
    var nesting = 0;

    while (openingParenIndex == null && offset > 0) {
      offset += -1;
      if (nesting == 0) {
        switch (source[offset]) {
          case '(':
            openingParenIndex = offset;
            break;
          case ',':
            parameterIndex += 1;
            break;
          case ';':
            return null;
          case ')':
            nesting += 1;
            break;
        }
      } else {
        switch (source[offset]) {
          case '(':
            nesting += -1;
            break;
          case ')':
            nesting += 1;
            break;
        }
      }
    }

    return openingParenIndex == null
        ? null
        : {
            'openingParenIndex': openingParenIndex,
            'parameterIndex': parameterIndex
          };
  }