text-api.coffee 713 B

1234567891011121314151617181920212223242526272829303132
  1. # Text document API for text
  2. text = require './text' if typeof WEB is 'undefined'
  3. text.api =
  4. provides: {text:true}
  5. # The number of characters in the string
  6. getLength: -> @snapshot.length
  7. # Get the text contents of a document
  8. getText: -> @snapshot
  9. insert: (pos, text, callback) ->
  10. op = [{p:pos, i:text}]
  11. @submitOp op, callback
  12. op
  13. del: (pos, length, callback) ->
  14. op = [{p:pos, d:@snapshot[pos...(pos + length)]}]
  15. @submitOp op, callback
  16. op
  17. _register: ->
  18. @on 'remoteop', (op) ->
  19. for component in op
  20. if component.i != undefined
  21. @emit 'insert', component.p, component.i
  22. else
  23. @emit 'delete', component.p, component.d