   reloadGrammar: ->
     @tokenizedBuffer.reloadGrammar()
 
+  # Experimental: Get a notification when async tokenization is completed.
+  onDidTokenize: (callback) ->
+    @tokenizedBuffer.onDidTokenize(callback)
+
   ###
   Section: Managing Syntax Scopes
   ###

  Object.defineProperty @prototype, "element",
    get: -> @getElement()

  @deserialize: (state, atomEnvironment) ->
    # TODO: Return null on version mismatch when 1.8.0 has been out for a while
    if state.version isnt @prototype.serializationVersion and state.displayBuffer?

  #
  # Returns a {Range}.
  bufferRangeForScopeAtCursor: (scopeSelector) ->
    @bufferRangeForScopeAtPosition(scopeSelector, @getCursorBufferPosition())

  bufferRangeForScopeAtPosition: (scopeSelector, position) ->
    @tokenizedBuffer.bufferRangeForScopeAtPosition(scopeSelector, position)

  # Extended: Determine if the given row is entirely a comment
  isBufferRowCommented: (bufferRow) ->
