   # Public: Get the entire text of the buffer.
   #
   # Returns a {String}.
-  getText: -> @buffer.getText()
+  getText: -> @cachedText ?= @buffer.getText()
 
   # Public: Get the text in a range.
   #

      for id, markerLayer of @markerLayers
        markerLayer.splice(oldRange.start, oldExtent, newExtent)

    @changeCount++
    @emitDidChangeEvent(changeEvent)
    newRange


        @outstandingSaveCount--
        @setFile(file)
        @fileHasChangedSinceLastLoad = false
        @digestWhenLastPersisted = @buffer.baseTextDigest()
        @loaded = true
        @emitModifiedStatusChanged(false)
        @emitter.emit 'did-save', {path: filePath}
