 
   renderBubble: (point) ->
     @removeBubble()
-    return unless @messagesLine.length
     return unless @showBubble
     activeEditor = atom.workspace.getActiveTextEditor()
     return unless activeEditor?.getPath?()
     point = point || activeEditor.getCursorBufferPosition()
-    for message in @messagesLine
-      continue unless message.range?.containsPoint point
+    for message in @messages
+      continue unless message.currentLine
+      continue unless message.range.containsPoint point
       @bubble = activeEditor.markBufferRange([point, point], {invalidate: 'inside'})
       activeEditor.decorateMarker(@bubble,
         type: 'overlay',

    bubble

  renderCount: ->
    count = File: 0, Project: @messages.length
    @messages.forEach (message) -> count.File++ if message.currentFile
    count.Line = @messagesLine.length
    @bottomContainer.setCount(count)

  renderPanelMessages: ->
    messages = null

    @messages = @classifyMessagesByLine(@classifyMessages(messages))
    if @ignoredMessageTypes.length
      @messages = @messages.filter (message) => @ignoredMessageTypes.indexOf(message.type) is -1
    @renderPanelMessages()
    @renderPanelMarkers()
    @renderBubble()
