     @subscriptions.add @bottomContainer.onDidChangeTab =>
       @renderPanelMessages()
 
-  render: (messages) ->
+  render: ({added, removed, messages}) ->
     @messages = @classifyMessages(messages)
     @renderPanelMessages()
-    @renderPanelMarkers()
+    @renderPanelMarkers({added, removed})
     @renderBubble()
     @renderCount()
 

    @state = @linter.state
    @subscriptions = new CompositeDisposable
    @messages = []
    @markers = []
    @panel = new BottomPanel().prepare()
    @bottomContainer = new BottomContainer().prepare(@linter.state)
    @bottomBar = null

      messages = @messages.filter (message) -> message.currentLine
    @panel.updateMessages messages, @state.scope is 'Project'

  renderPanelMarkers: ({added, removed}) ->
    @removeMarkers(removed)
    activeEditor = atom.workspace.getActiveTextEditor()
    return unless activeEditor
    added.forEach (message) =>
      return unless message.currentFile
      @markers.set(message.key, marker = activeEditor.markBufferRange message.range, {invalidate: 'inside'})
      activeEditor.decorateMarker(
        marker, type: 'line-number', class: "linter-highlight #{message.class}"
      )
