|
From: | Ergus |
Subject: | Re: Question collaborative editing. |
Date: | Tue, 29 Sep 2020 23:46:24 +0200 |
On Tue, Sep 29, 2020 at 04:01:56PM +0000, Qiantan Hong wrote:
I want to try Rudle first to see if it fit some minimal "needs". That it: 1) Not require modem/routers special configurations to open ports or have a static IP. 2) Use CRDT instead of OT 3) It could be integrated with other editors to create "mix" sessions. I mean, it doesn't enforces some emacs specific features and plugins could be created for other editors.I took a glance at source of rudel, and I have to admit I didn’t enjoy reading it — I have to track through several M-. just to get to some factory method (srsly)? I wonder how much effort it will take to make such big change in its infrasture. On the other hand a separate CRDT library is a quite orthogonal issue and might be potentially reused by other packages, or even other use cases — like, making Emacs plugins asynchronous. I’ll work on a separate CRDT library.
Actually this was my intention since the beginning. If you can start with that is much much better (you can share the link to the repo if you like and I will try to help). The basic algorithms could easily be implemented in an editor agnostic C library. It can receive a json string and return json as well (as we already have a good and fast json parser in emacs). Also the communication can he handled in that level. And at the end it will be possible to implement plugins for almost any editor with json support or using a json external library.... Did you checked Tandem? It has almost everything we need except because it is Python+javascript, node.js... :( You could check these 4 links: https://github.com/typeintandem/tandem https://github.com/typeintandem/tandem/issues/125 https://github.com/jscheid/tandem-emacs https://github.com/typeintandem/tandem/wiki/Interacting-with-the-Tandem-Agent My idea was more or less to reproduce the last one but without all the agent, stdin, python and JS mess. Best, Ergus
[Prev in Thread] | Current Thread | [Next in Thread] |