       screenRow = firstRow + row
       y0 = y*lineHeight
 
+      # Line decorations are first drawn on the canvas.
       lineDecorations = @decorationsByTypesForRow(screenRow, 'line', decorations)
       for decoration in lineDecorations
         context.fillStyle = @getDecorationColor(decoration)
         context.fillRect(0,y0,canvasWidth,lineHeight)
 
+      # Then comes the highlight decoration with `highlight-under` type.
       highlightDecorations = @decorationsByTypesForRow(firstRow + row, 'highlight-under', decorations)
       for decoration in highlightDecorations
         @drawHighlightDecoration(context, decoration, y, screenRow, lineHeight, charWidth, canvasWidth)
 
+      # Then the line tokens are drawn
       for token in line.tokens
         w = token.screenDelta
         unless token.isOnlyWhitespace()

  #    ##     ## ##    ##  ##     ## ##  ##  ##
  #    ########  ##     ## ##     ##  ###  ###

  drawLines: (context, firstRow, lastRow, offsetRow) ->
    return if firstRow > lastRow
    if @editor.tokenizedLinesForScreenRows?
      lines = @editor.tokenizedLinesForScreenRows(firstRow, lastRow)
    else
      lines = @editor.linesForScreenRows(firstRow, lastRow)
    lineHeight = @getLineHeight()
    charHeight = @getCharHeight()
    charWidth = @getCharWidth()

        else
          x += w * charWidth

      # Finally the highlight over decorations are drawn.
      highlightDecorations = @decorationsByTypesForRow(firstRow + row, 'highlight', 'highlight-over', decorations)
      for decoration in highlightDecorations
        @drawHighlightDecoration(context, decoration, y, screenRow, lineHeight, charWidth, canvasWidth)

    context.fill()

  # Internal: Draws a single token on the given context.
  #
  # context - The canvas context {Object} onto which draw the token.
  # text - The {String} text of the token.
  # color - The {String} color of the token.
  # x - The {Number} position on the x axis at which render the token.
  # y - The {Number} position on the y axis at which render the token.
  # charWidth - The char width {Number}.
  # charHeight - The char height {Number}.
  #
  # Returns a {Number} that correspond to the new x position after the render.
  drawToken: (context, text, color, x, y, charWidth, charHeight) ->
    context.fillStyle = color
    chars = 0
