   setAt: (tokens, position) ->
     [row, column] = position
 
+    debugger
+
     # XXX: This is a *disgusting* and fragile way to add the ghost-text; I
     # easily expect this to be broken in in the near future. I really
     # shouldn't be messing around with the editor DOM, but it's effective as
     # long as we're responsible with it...
-    $row = $(".line[data-screen-row=#{row}]")
+    $row = @$editor.find(".line[data-screen-row=#{row}]")
     console.assert not $row.empty()
 
     $sourceSpan = $row.children('.source, .text').first()

    $sourceSpan.append @$ghostText

    # This class will be useful in selectors.
    @$editor.addClass 'gamboge'

  removeAll: ->
    return unless @$ghostText?
    @$editor.find('.gamboge-ghost, .gamboge-invisible').remove()
    @$editor.removeClass 'gamboge'
    @$ghostText = null

  destroy: ->

  subscriptions: null
  $ghostText: null

  constructor: (predictions, editorElement) ->
    @subscriptions = new CompositeDisposable
    # Coerce the input into a jQuery.
    @$editor = $(editorElement)
    console.assert not @$editor.empty()

    @subscriptions.add predictions.onDidChangeIndex (index) =>
      @removeAll()
