diff --git a/services/web/public/coffee/ide/editor/sharejs/vendor/client/cm.coffee b/services/web/public/coffee/ide/editor/sharejs/vendor/client/cm.coffee index d2cf8f2dce..b6ea0ede63 100644 --- a/services/web/public/coffee/ide/editor/sharejs/vendor/client/cm.coffee +++ b/services/web/public/coffee/ide/editor/sharejs/vendor/client/cm.coffee @@ -12,21 +12,10 @@ applyCMToShareJS = (editorDoc, delta, doc) -> while i < delta.from.line startPos += editorDoc.lineInfo(i).text.length + 1 # Add 1 for '\n' i++ - startPos += delta.from.ch - if delta.to.line == delta.from.line && - delta.to.ch == delta.from.ch # Then nothing was removed. - doc.insert startPos, delta.text.join '\n' - else - delLen = delta.to.ch - delta.from.ch - while i < delta.to.line - delLen += editorDoc.lineInfo(i).text.length + 1 # Add 1 for '\n' - i++ - doc.del startPos, delLen - doc.insert startPos, delta.text.join '\n' if delta.text - - applyCMToShareJS editorDoc, delta.next, doc if delta.next + doc.del startPos, delta.removed.join('\n').length if delta.removed + doc.insert startPos, delta.text.join('\n') if delta.text # Attach a CodeMirror editor to the document. The editor's contents are replaced # with the document's contents unless keepEditorContents is true. (In which case @@ -47,8 +36,9 @@ window.sharejs.extendDoc 'attach_cm', (editor, keepEditorContents) -> console.error "Text does not match!" console.error "editor: #{editorText}" console.error "ot: #{otText}" - # Replace the editor text with the doc snapshot. - editor.setValue sharedoc.getText() + # Removed editor.setValue here as it would cause recursive loops if + # consistency check failed - because setting the value would trigger + # the change event , 0 if keepEditorContents