code: def _line_start_indexes(self):
          
          # Cache, because this is often reused. (If it is used, it's often used
          # many times. And this has to be fast for editing big documents!)
          if self._cache.line_indexes is None:
              # Create list of line lengths.
              line_lengths = map(len, self.lines)
  
              # Calculate cumulative sums.
              indexes = [0]
              append = indexes.append
              pos = 0
  
              for line_length in line_lengths:
                  pos += line_length + 1
                  append(pos)
  
              # Remove the last item. (This is not a new line.)
              if len(indexes) > 1:
                  indexes.pop()
  
              self._cache.line_indexes = indexes
  
          return self._cache.line_indexes
docs: Array pointing to the start indexes of all the lines.