code: public String getLine(int lineNumber) {
      findLineOffsets();
      if (lineNumber > lineOffsets.length) {
        return null;
      }
  
      if (lineNumber < 1) {
        lineNumber = 1;
      }
  
      int pos = lineOffsets[lineNumber - 1];
      String js = "";
      try {
        // NOTE(nicksantos): Right now, this is optimized for few warnings.
        // This is probably the right trade-off, but will be slow if there
        // are lots of warnings in one file.
        js = getCode();
      } catch (IOException e) {
        return null;
      }
  
      if (js.indexOf('\n', pos) == -1) {
        // If next new line cannot be found, there are two cases
        // 1. pos already reaches the end of file, then null should be returned
        // 2. otherwise, return the contents between pos and the end of file.
        if (pos >= js.length()) {
          return null;
        } else {
          return js.substring(pos);
        }
      } else {
        return js.substring(pos, js.indexOf('\n', pos));
      }
    }
docs: Gets the source line for the indicated line number.
  
  @param lineNumber the line number, 1 being the first line of the file.
  @return The line indicated. Does not include the newline at the end
  of the file. Returns {@code null} if it does not exist,
  or if there was an IO exception.