2012-12-01 18 views
5

Ho avviato questo piccolo progetto in cui avrei collaborato in tempo reale al codice utilizzando CodeMirror.Collaborazione in tempo reale con CodeMirror

Ho una configurazione di sistema msgs tale è facile passare oggetti da un utente all'altro. Il mio problema è farla integrare con CodeMirror. Ho scoperto che ha eventi per onchange e replaceRange (stringa, da, a).

Ho passato gli oggetti onchange agli altri utenti e utilizzo replaceRange per aggiornare la vista. Il problema è quindi quando si utilizza replaceRange, si innesca un nuovo onchange e invia msgs avanti e indietro. Qualcuno sa se c'è un modo per aggiornare la vista locale senza che si inneschi un onchange. O suggerimenti per altri percorsi da intraprendere. (il sistema msgs è già impostato e è facile passare oggetti javascript ad altri client).

risposta

4

Per fare in modo che funzioni correttamente, è necessario unire anche le modifiche. Vedi http://ot.substance.io/ per una demo di una soluzione open-source (anche usando CodeMirror).

+0

Ho appena trovato la demo. Sembra funzionare bene. –

+1

silent = true; aggiorna codemirror; silent = false; era quello che dovevo risolvere. –

+0

@pksorensen Ciao, ho esattamente lo stesso problema. Ho letto il tuo commento, ma non sono sicuro di cosa sia silenzioso qui? Non sono riuscito a trovare nulla del genere nel manuale del mirror di codice. Ti dispiace condividere la soluzione o forse la stai elaborando un po '? Ti prego, fai questo favore. Grazie –

7

È possibile utilizzare Firepad

FirePad è un open-source (su GitHub) in tempo reale di collaborazione plug-in per CodeMirror. Puoi farlo configurare con codemirror in 4 righe aggiuntive di codice e pochi minuti. Utilizza Firebase per il backend.

+3

firebase non è gratuito e non è privato. – Richard

+0

E 'stato quando ho scritto questo anni fa ... poi Google l'ha acquisito. – DrFriedParts