 
     @redrawMain()
 
+  Editor::markBlock = (line, col, style) ->
+    parent = @tree.getBlockOnLine line; head = parent.start
+    # Find the necessary indent for this line
+    chars = 0
+    until parent is @tree
+      if parent.type is 'indent'
+        chars += parent.prefix.length
+      parent = parent.parent
+    until (chars >= col and head.type is 'blockStart') or head.type is 'newline'
+      chars += head.stringify().length
+      head = head.next
+
+    if head.type is 'newline'
+      return false
+
+    key = @markedBlockKey++
+
+    @markedBlocks[key] = {
+      model: head.container
+      style: style
+    }
+
+    @redrawMain()
+
+    return key
+
+  Editor::unmarkBlock = (key) ->
+    delete @markedBlocks[key]
+    return true
+
   Editor::unmarkLine = (line) ->
     delete @markedLines[line]
 
     @redrawMain()
 
-  Editor::clearLineMarks = (tag) ->
-    @markedLines = {}
+  Editor::clearLineMarks = ->
+    @markedLines = @markedBlocks = {}
 
     @redrawMain()
 


  hook 'populate', 0, ->
    @markedLines = {}
    @extraMarks = {}

  Editor::getHighlightPath = (model, style) ->

      else
        delete @markedLines[line]

    for id, info of @markedBlocks
      if @inTree info.model
        path = @getHighlightPath info.model, info.style
        path.draw @highlightCtx
      else
        delete @markedLines[line]

    for id, info of @extraMarks
      if @inTree info.model
        path = @getHighlightPath info.model, info.style
