isComplete property

bool get isComplete

Implementation

bool get isComplete {
  final s = _buffer.toString();
  var depth = 0;
  var inStr = false;
  var esc = false;
  for (var i = 0; i < s.length; i++) {
    final c = s[i];
    if (esc) {
      esc = false;
      continue;
    }
    if (inStr) {
      if (c == r'\') esc = true;
      if (c == '"') inStr = false;
      continue;
    }
    if (c == '"') {
      inStr = true;
      continue;
    }
    if (c == '{') depth++;
    if (c == '}') depth--;
  }
  return depth == 0 && !inStr;
}