         @rowMarker?.destroy()
 
     if @provider.boundToEditor
-      @bindToEditor(@provider.editor)
-      @disposables.add @providerEditor.onDidDestroy(@destroy.bind(this))
+      @setSyncToEditor(@provider.editor)
+      @disposables.add @provider.editor.onDidDestroy(@destroy.bind(this))
 
     @constructor.register(this)
     @disposables.add new Disposable =>

    @ignoreChangeOnEditor = false
    range

  bindToEditor: (editor) ->
    @editorSubcriptions?.dispose()
    @editorSubcriptions = new CompositeDisposable
    @editorSubcriptions.add atom.workspace.onDidStopChangingActivePaneItem (item) =>
      @syncToProviderEditor() if item is editor

    @editorSubcriptions.add editor.onDidStopChanging =>
      # Skip is not activeEditor, important to skip auto-refresh on direct-edit.
      @refresh(force: true) if isActiveEditor(editor)

    @editorSubcriptions.add editor.onDidChangeCursorPosition (event) =>
      if isActiveEditor(editor) and
          (not event.textChanged) and
          (event.oldBufferPosition.row isnt event.newBufferPosition.row)
        @syncToProviderEditor()

  # vim-mode-plus integration
  # -------------------------

    # Special item used to translate narrow editor row to items without pain
    @promptItem = Object.freeze({_prompt: true, skip: true})
    @itemAreaStart = Object.freeze(new Point(1, 0))

    # Setup narrow-editor
    # -------------------------
