Improving real-time collaboration with highlighting
Highlighting is a common tool in most single-user editors. It provides users with a mechanism of communication and collaboration between the author and readers by emphasizing some important text. This tool is also necessary and even more valuable in multi-user collaborative editors. However, it is non-trivial to extend it from single-user environment to multi-user environment because of the following challenges: (1) the need to differentiate highlights performed by different users, (2) the need to tackle inconsistency problems caused by concurrent operations and non-deterministic communication latency, and (3) the need to provide a flexible undo facility with the capability of undoing any highlighting operation at any time. In this paper, we will systematically address these issues and offer our solutions. These solutions lay a foundation for handling update operations similar in nature to highlighting, which update attributes of text instead of inserting/deleting text.
highlighting undo collaborative editing consistency maintenance group awareness operational transformation