   # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
   onDidStopChanging: (callback) ->
     @getBuffer().onDidStopChanging(callback)
-
-  # Extended: Calls your `callback` when the result of {::isModified} changes.
-  #
-  # * `callback` {Function}
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidChangeModified: (callback) ->
-    @getBuffer().onDidChangeModified(callback)
-
-  # Extended: Calls your `callback` when the buffer's underlying file changes on
-  # disk at a moment when the result of {::isModified} is true.
-  #
-  # * `callback` {Function}
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidConflict: (callback) ->
-    @getBuffer().onDidConflict(callback)
-
-  # Extended: Calls your `callback` before text has been inserted.
-  #
-  # * `callback` {Function}
-  #   * `event` event {Object}
-  #     * `text` {String} text to be inserted
-  #     * `cancel` {Function} Call to prevent the text from being inserted
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onWillInsertText: (callback) ->
-    @emitter.on 'will-insert-text', callback
-
-  # Extended: Calls your `callback` adter text has been inserted.
-  #
-  # * `callback` {Function}
-  #   * `event` event {Object}
-  #     * `text` {String} text to be inserted
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidInsertText: (callback) ->
-    @emitter.on 'did-insert-text', callback
-
-  # Public: Invoke the given callback after the buffer is saved to disk.
-  #
-  # * `callback` {Function} to be called after the buffer is saved.
-  #   * `event` {Object} with the following keys:
-  #     * `path` The path to which the buffer was saved.
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidSave: (callback) ->
-    @getBuffer().onDidSave(callback)
-
-  # Extended: Calls your `callback` when a {Cursor} is added to the editor.
-  # Immediately calls your callback for each existing cursor.
-  #
-  # * `callback` {Function}
-  #   * `selection` {Selection} that was added
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  observeCursors: (callback) ->
-    callback(cursor) for cursor in @getCursors()
-    @onDidAddCursor(callback)
-
-  # Extended: Calls your `callback` when a {Cursor} is added to the editor.
-  #
-  # * `callback` {Function}
-  #   * `cursor` {Cursor} that was added
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidAddCursor: (callback) ->
-    @emitter.on 'did-add-cursor', callback
-
-  # Extended: Calls your `callback` when a {Cursor} is removed from the editor.
-  #
-  # * `callback` {Function}
-  #   * `cursor` {Cursor} that was removed
-  #
-  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
-  onDidRemoveCursor: (callback) ->
-    @emitter.on 'did-remove-cursor', callback
 
   # Essential: Calls your `callback` when a {Cursor} is moved. If there are
   # multiple cursors, your callback will be called for each cursor.

  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidRemoveSelection: (callback) ->
    @emitter.on 'did-remove-selection', callback

  # Essential: Calls your `callback` when a selection's screen range changes.
  #
  # * `callback` {Function}
  #   * `selection` {Selection} that moved
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChangeSelectionRange: (callback) ->
    @emitter.on 'did-change-selection-range', callback

  # Extended: Calls your `callback` with each {Decoration} added to the editor.
  # Calls your `callback` immediately for any existing decorations.

  onDidChangeCursorPosition: (callback) ->
    @emitter.on 'did-change-cursor-position', callback

  # Essential: Calls your `callback` when a selection's screen range changes.
  #
  # * `callback` {Function}
  #   * `selection` {Selection} that moved
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChangeSelectionRange: (callback) ->
    @emitter.on 'did-change-selection-range', callback

  # Extended: Calls your `callback` when soft wrap was enabled or disabled.
  #
  # * `callback` {Function}
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChangeSoftWrapped: (callback) ->
    @displayBuffer.onDidChangeSoftWrapped(callback)

  # Extended: Calls your `callback` when the grammar that interprets and colorizes the text has
  # been changed.
  #
  # * `callback` {Function}
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChangeGrammar: (callback) ->
    @emitter.on 'did-change-grammar', callback

  # Extended: Calls your `callback` when the result of {::isModified} changes.
  #
  # * `callback` {Function}
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidChangeModified: (callback) ->
    @getBuffer().onDidChangeModified(callback)

  # Extended: Calls your `callback` when the buffer's underlying file changes on
  # disk at a moment when the result of {::isModified} is true.
  #
  # * `callback` {Function}
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidConflict: (callback) ->
    @getBuffer().onDidConflict(callback)

  # Extended: Calls your `callback` before text has been inserted.
  #
  # * `callback` {Function}
  #   * `event` event {Object}
  #     * `text` {String} text to be inserted
  #     * `cancel` {Function} Call to prevent the text from being inserted
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onWillInsertText: (callback) ->
    @emitter.on 'will-insert-text', callback

  # Extended: Calls your `callback` adter text has been inserted.
  #
  # * `callback` {Function}
  #   * `event` event {Object}
  #     * `text` {String} text to be inserted
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidInsertText: (callback) ->
    @emitter.on 'did-insert-text', callback

  # Public: Invoke the given callback after the buffer is saved to disk.
  #
  # * `callback` {Function} to be called after the buffer is saved.
  #   * `event` {Object} with the following keys:
  #     * `path` The path to which the buffer was saved.
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidSave: (callback) ->
    @getBuffer().onDidSave(callback)

  # Extended: Calls your `callback` when a {Cursor} is added to the editor.
  # Immediately calls your callback for each existing cursor.
  #
  # * `callback` {Function}
  #   * `selection` {Selection} that was added
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  observeCursors: (callback) ->
    callback(cursor) for cursor in @getCursors()
    @onDidAddCursor(callback)

  # Extended: Calls your `callback` when a {Cursor} is added to the editor.
  #
  # * `callback` {Function}
  #   * `cursor` {Cursor} that was added
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidAddCursor: (callback) ->
    @emitter.on 'did-add-cursor', callback

  # Extended: Calls your `callback` when a {Cursor} is removed from the editor.
  #
  # * `callback` {Function}
  #   * `cursor` {Cursor} that was removed
  #
  # Returns a {Disposable} on which `.dispose()` can be called to unsubscribe.
  onDidRemoveCursor: (callback) ->
    @emitter.on 'did-remove-cursor', callback

  # Extended: Calls your `callback` when a {Selection} is added to the editor.
  # Immediately calls your callback for each existing selection.
  #
