code: func (c *hunksGenerator) addLineNumbers(la, lb int, linesBefore int, i int, op Operation) (cla, clb int) {
  	cla = la - linesBefore
  	// we need to search for a reference for the next diff
  	switch {
  	case linesBefore != 0 && c.ctxLines != 0:
  		if lb > c.ctxLines {
  			clb = lb - c.ctxLines + 1
  		} else {
  			clb = 1
  		}
  	case c.ctxLines == 0:
  		clb = lb
  	case i != len(c.chunks)-1:
  		next := c.chunks[i+1]
  		if next.Type() == op || next.Type() == Equal {
  			// this diff will be into this chunk
  			clb = lb + 1
  		}
  	}
  
  	return
  }
docs: // addLineNumbers obtains the line numbers in a new chunk