     @provider?.destroy?()
     @itemIndicator?.destroy()
     @rowMarker?.destroy()
-
-  updateRealFile: ->
-    return unless @provider.supportDirectEdit
-    return unless @isModified()
-
-    if settings.get('confirmOnUpdateRealFile')
-      unless atom.confirm(message: 'Update real file?', buttons: ['Update', 'Cancel']) is 0
-        return
-
-    return unless @ensureNarrowEditorIsValidState()
-
-    changes = []
-    lines = @editor.buffer.getLines()
-    for line, row in lines when @isNormalItem(item = @items[row])
-      if item._lineHeader?
-        line = line[item._lineHeader.length...] # Strip lineHeader
-      if line isnt item.text
-        changes.push({newText: line, item})
-
-    return unless changes.length
-
-    unless @provider.boundToEditor
-      {success, message} = @ensureNoModifiedFileForChanges(changes)
-      unless success
-        atom.notifications.addWarning(message, dismissable: true)
-        return
-
-    {success, message} = @ensureNoConflictForChanges(changes)
-    unless success
-      atom.notifications.addWarning(message, dismissable: true)
-      return
-
-    @provider.updateRealFile(changes)
-    @setModifiedState(false)
 
   # This function is mapped from `narrow:close`
   # To differentiate `narrow:close` for protected narrow-editor.


  hasNormalItem: ->
    @items.some (item) -> (not item.skip)
    #
    # @getNormalItems().length > 0

  hasSomeNormalItemForFilePath: (filePath) ->
    @items.some (item) ->


  previewPreviousItem: ->
    @previewItemForDirection('previous')

  getQuery: ->
    @lastQuery = @editor.lineTextForBufferRow(0)
