[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Question collaborative editing.
From: |
Eli Zaretskii |
Subject: |
Re: Question collaborative editing. |
Date: |
Wed, 30 Sep 2020 16:43:33 +0300 |
> From: Qiantan Hong <qhong@mit.edu>
> Date: Tue, 29 Sep 2020 23:40:53 +0000
> Cc: Fermin <fmfs@posteo.net>, Jean Louis <bugs@gnu.support>,
> Noam Postavsky <npostavs@gmail.com>, Emacs developers <emacs-devel@gnu.org>,
> Karl Fogel <kfogel@red-bean.com>, Stefan Monnier <monnier@iro.umontreal.ca>
>
> > In the library level we could (and maybe should) implement both (OT and
> > CRDT). This will only require a hint from the server side (or the
> > connection starter client) to inform the client's libraries "what to use
> > this time". Then practice will say what's better.
> >
> > ATM we could start with a C library in order to provide a nice free
> > back-end editor agnostic. Because IMO the most interesting part of this
> > will be to open emacs to interact with other editors with a free
> > infrastructure emacs-centric.
>
> I’m not sure if it’s easy (or worth the effort) to provide CRDT in an
> editor-agnostic way from C-level. Seems that the most natural
> choice is to tag characters with CRDT data structures. Emacs has
> text property which is very suitable for this, and I’m implementing
> it in this way as an Elisp library. However, this relies on the particular
> data structure for buffer/text emacs uses.
>
> If implemented as a separate C library, I imagine the CRDT library
> need to have its own buffer/text data structure and somehow keep
> in sync with Emacs’ .. doesn’t sound so clean.
I'm probably missing something because I don't understand the problem
that worries you. Given the information about how to update a buffer,
isn't it relatively easy to generate a series of insert/delete/replace
operations from that information? And if so, those actions can be
almost trivially converted to Emacs primitives that manipulate buffer
text. What am I missing?
- Re: Question collaborative editing., (continued)
- Re: Question collaborative editing., Qiantan Hong, 2020/09/29
- Re: Question collaborative editing., Karl Fogel, 2020/09/29
- Re: Question collaborative editing., Ergus, 2020/09/29
- Re: Question collaborative editing., Qiantan Hong, 2020/09/29
- Re: Question collaborative editing., Ergus, 2020/09/29
- Re: Question collaborative editing., Qiantan Hong, 2020/09/29
- Re: Question collaborative editing., Karl Fogel, 2020/09/30
- Re: Question collaborative editing., Ergus, 2020/09/30
- Re: Question collaborative editing., Karl Fogel, 2020/09/30
- Re: Question collaborative editing., Eli Zaretskii, 2020/09/30
- Re: Question collaborative editing.,
Eli Zaretskii <=
- Re: Question collaborative editing., Qiantan Hong, 2020/09/30
- Re: Question collaborative editing., Eli Zaretskii, 2020/09/30
- Re: Question collaborative editing., Qiantan Hong, 2020/09/30
- Re: Question collaborative editing., Qiantan Hong, 2020/09/30
- Re: Question collaborative editing., Eli Zaretskii, 2020/09/30
- Re: Question collaborative editing., Qiantan Hong, 2020/09/30
- Re: Question collaborative editing., Eli Zaretskii, 2020/09/30
- Re: Question collaborative editing., Ergus, 2020/09/30
- Re: Question collaborative editing., Stefan Monnier, 2020/09/30