     super
 
     @emitter = new Emitter
+    @disposables = new CompositeDisposable
 
     @tokenizedBuffer ?= new TokenizedBuffer({tabLength, buffer, @invisibles})
     @buffer = @tokenizedBuffer.buffer

  decorateMarker: (marker, decorationParams) ->
    marker = @getMarker(marker.id)
    decoration = new Decoration(marker, this, decorationParams)
    @subscribe decoration.onDidDestroy => @removeDecoration(decoration)
    @decorationsByMarkerId[marker.id] ?= []
    @decorationsByMarkerId[marker.id].push(decoration)
    @decorationsById[decoration.id] = decoration

  destroyed: ->
    marker.disposables.dispose() for id, marker of @markers
    @scopedConfigSubscriptions.dispose()
    @disposables.dispose()
    @tokenizedBuffer.destroy()

  logLines: (start=0, end=@getLastRow()) ->
