The problem with this is it will require considering conflict resolution for every combination of command (which is basically impossible) and it’s hard to even just guarantee eventual consistency. One simple example to illustrate this: * Level 1 ** Level 2 some text User 1 pressed TAB (to invoke org-cycle) on ** Level 2, user 2 delete ** Level 2 in the same time. If we just send (command,location) over the wire, in the end user 1 will end up having a folded “some text” without “**level 2” heading, and user1 will have level 1 folded. With a overlay-synchronization approach, I was able to support org-cycle with eventual consistency guarantee in 1 line (just add to the filter). (The synchronization implementation itself is about 100 lines). I was thinking that my way of filtering might not be general enough but now I think there’s probably very few use cases for this — org-cycle is a useful one — so I don’t need to worry much about filtering customization. What do others think? > On Oct 12, 2020, at 10:40 AM, Eli Zaretskii wrote: > >> From: Qiantan Hong >> CC: Joe Corneli , >> "joakim@verona.se" >> , Yuan Fu , >> Fermin , Jean Louis , >> Caio Henrique , Ergus >> , >> Noam Postavsky , Karl Fogel >> , >> Stefan Monnier , >> emacs-devel >> >> Date: Mon, 12 Oct 2020 03:22:55 +0000 >> >> E.g. when two users are editing the same org document, >> in some cases they may want two replica to fold the same sections. >> — I always find myself wanting this feature to make sure both >> are focusing on the same parts of the document, and at least seeing >> the same thing. > > This seems to indicate you want the capability of sending commands, > not their results. The command will then be executed on the remote, > and will produce the desired effects.