     @renderView.destroy()
     @remove()
 
-  # MINIMAP DISPLAY MANAGEMENT
-
+  #    ########  ####  ######  ########  ##          ###    ##    ##
+  #    ##     ##  ##  ##    ## ##     ## ##         ## ##    ##  ##
+  #    ##     ##  ##  ##       ##     ## ##        ##   ##    ####
+  #    ##     ##  ##   ######  ########  ##       ##     ##    ##
+  #    ##     ##  ##        ## ##        ##       #########    ##
+  #    ##     ##  ##  ##    ## ##        ##       ##     ##    ##
+  #    ########  ####  ######  ##        ######## ##     ##    ##
+
+  # Toggles the display of the code highlights rendering.
+  #
+  # value - A {Boolean} of whether to render the code highlights or not.
+  setDisplayCodeHighlights: (value) ->
+    if value isnt @displayCodeHighlights
+      @displayCodeHighlights = value
+      @renderView.forceUpdate()
+
+  # Internal: Attaches the minimap view to the DOM.
   attachToPaneView: ->
     @paneView.append(this)
     @adjustTopPosition()
 
+  # Internal: Detaches the minimap view to the DOM.
   detachFromPaneView: ->
     @detach()
 
+  # Returns `true` when the minimap is actually attached to the DOM.
+  #
+  # Returns a {Boolean}.
   minimapIsAttached: -> @paneView.find('.minimap').length is 1
 
-  # EDITOR VIEW MANAGEMENT
-
-  unsubscribeFromEditor: ->
-    @unsubscribe @editor, '.minimap' if @editor?
-    @unsubscribe @scrollView, '.minimap' if @scrollView?
-
-  subscribeToEditor: ->
-    @subscribe @editor, 'scroll-top-changed.minimap', @updateScrollY
-    # Hacked scroll-left
-    @subscribe @scrollView, 'scroll.minimap', @updateScrollX
-
+  # Internal: Returns the bounds of the `EditorView`.
+  #
+  # Returns an {Object}.
   getEditorViewClientRect: -> @scrollView[0].getBoundingClientRect()
 
+  # Internal: Returns the bounds of the editor `ScrollView`.
+  #
+  # returns an {Object}.
   getScrollViewClientRect: -> @scrollViewLines[0].getBoundingClientRect()
 
+  # Returns the bounds of the minimap.
+  #
+  # Returns an {Object}
   getMinimapClientRect: -> @[0].getBoundingClientRect()
 
-  # UPDATE METHODS
-
-  updateMinimapRenderView: => @renderView.update()
-
-  updateMinimapSize: =>
-    return unless @indicator?
-
-    {width, height} = @getMinimapClientRect()
-    editorViewRect = @getEditorViewClientRect()
-    miniScrollViewRect = @renderView.getClientRect()
-
-    evw = editorViewRect.width
-    evh = editorViewRect.height
-
-    minimapVisibilityRatio = miniScrollViewRect.height / height
-
-    @miniScroller.height(evh / minimapVisibilityRatio)
-    @miniScroller.toggleClass 'visible', minimapVisibilityRatio > 1 and @miniScrollVisible
-
-    @miniWrapper.css {width}
-
-    # VisibleArea's size
-    @indicator.height = evh * @scaleY
-    @indicator.width = width / @scaleX
-
-    @miniVisibleArea.css
-      width : width / @scaleX
-      height: evh * @scaleY
-
-    msvw = miniScrollViewRect.width || 0
-    msvh = miniScrollViewRect.height || 0
-
-    # Minimap's size
-    @indicator.setWrapperSize width, Math.min(height, msvh)
-
-    # Minimap ScrollView's size
-    @indicator.setScrollerSize msvw, msvh
-
-    # Compute boundary
-    @indicator.updateBoundary()
-
-
+  #    ##     ## ########  ########     ###    ######## ########
+  #    ##     ## ##     ## ##     ##   ## ##      ##    ##
+  #    ##     ## ##     ## ##     ##  ##   ##     ##    ##
+  #    ##     ## ########  ##     ## ##     ##    ##    ######
+  #    ##     ## ##        ##     ## #########    ##    ##
+  #    ##     ## ##        ##     ## ##     ##    ##    ##
+  #     #######  ##        ########  ##     ##    ##    ########
+
+  # Updates the minimap view.
+  #
+  # The size, scrolling and view area are updated as well as the
+  # {MinimapRenderView} if the minimap own scrolling is changed during
+  # the update.
   updateMinimapView: =>
     return unless @editorView
     return unless @indicator

      @updateScroll()
      @frameRequested = false

  updateScrollY: (top) =>
    # Need scroll-top value when in find pane or on Vim mode(`gg`, `shift+g`).
    # Or we can find a better solution.

    @indicator.setY(overlayY * @scaleY)
    @updatePositions()

  # Internal: Updates the horizontal scrolling of the minimap.
  updateScrollX: =>
    @indicator.setX(@scrollView[0].scrollLeft)
    @updatePositions()

  # Internal: Updates the scroll of the minimap both horizontally and
  # vertically.
  updateScroll: =>
    @indicator.setX(@scrollView[0].scrollLeft)
    @updateScrollY()
    @trigger 'minimap:scroll'

  # Internal: Updates the position of the various elements of the minimap
  # after a scroll changes.
  updatePositions: ->
    @transform @miniVisibleArea[0], @translate(0, @indicator.y)
    @renderView.scrollTop(@indicator.scroller.y * -1)
