Explorar o código

Instead of setting value of CM, swap Docs

This allows for tracking changes on individual docs (i.e. files), instead of
just changes to the editor. This is similar to how Ace works with sessions
Alasdair Smith %!s(int64=8) %!d(string=hai) anos
pai
achega
c85e9ba3b1

+ 3 - 2
services/web/public/coffee/ide/editor/directives/cmEditor.coffee

@@ -17,8 +17,9 @@ define [
             attachToCM(sharejsDoc)
 
         attachToCM = (sharejsDoc) ->
-          cm.setValue(sharejsDoc.getSnapshot())
-          sharejsDoc.attachToCM(cm)
+          setTimeout () ->
+            Frontend.richText.openDoc(cm, sharejsDoc.getSnapshot())
+            sharejsDoc.attachToCM(cm)
 
         detachFromCM = (sharejsDoc) ->
           sharejsDoc.detachFromCM()

+ 7 - 1
services/web/public/es/rich-text.js

@@ -1,5 +1,11 @@
-import CodeMirror from 'codemirror'
+import CodeMirror, { Doc } from 'codemirror'
 
 export function init(rootEl) {
   return CodeMirror(rootEl)
 }
+
+export function openDoc(cm, content) {
+  const newDoc = Doc(content)
+  cm.swapDoc(newDoc)
+  return newDoc
+}