inlineCommentStart function

int? inlineCommentStart(
  1. String line
)

The index of the # that starts an inline comment in line, ignoring # inside quotes and # not preceded by whitespace.

Implementation

int? inlineCommentStart(String line) {
  var inSingle = false;
  var inDouble = false;
  for (var i = 0; i < line.length; i++) {
    final char = line[i];
    if (char == "'" && !inDouble) {
      inSingle = !inSingle;
    } else if (char == '"' && !inSingle) {
      inDouble = !inDouble;
    } else if (char == '#' &&
        !inSingle &&
        !inDouble &&
        (i == 0 || line[i - 1] == ' ' || line[i - 1] == '\t')) {
      return i;
    }
  }
  return null;
}