code: def linenum(self, index):
          
          if len(self._lines) == 0 and self.refstring != "":
              self._lines = self.refstring.split("\n")
              #Add one for the \n that we split on for each line
              self._chars = [ len(x) + 1 for x in self._lines ]
              #Remove the last line break since it doesn't exist
              self._chars[-1] -= 1
  
              #Now we want to add up the number of characters in each line
              #as the lines progress so that it is easy to search for the
              #line of a single character index
              total = 0
              for i in range(len(self._chars)):
                  total += self._chars[i]
                  self._chars[i] = total
  
          if len(self._lines) > 0:
              #Now, find the first index where the character value is >= index
              result = -1
              i = 0
              while result == -1 and i < len(self._chars):
                  if index <= self._chars[i]:
                      result = [ i, self._chars[i] - index]
                  i += 1
  
              return result
          else:
              return [ -1, -1 ]
docs: Gets the line number of the character at the specified index.
          If the result is unknown, -1 is returned.