CoVim : converting Vim into a real-time collaborative text editor

CoVim is an ongoing project that aims to convert Vim editor to a multi-user real-time collaborative application using Transparent Adaptation approach. The present research and implementation of this project focuses towards the completion of CoVim by enhancing, reinventing and fixing the technologies...

Full description

Saved in:
Bibliographic Details
Main Author: Satija, Parth
Other Authors: Sun Chengzheng
Format: Final Year Project
Language:English
Published: 2016
Subjects:
Online Access:http://hdl.handle.net/10356/66845
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-66845
record_format dspace
spelling sg-ntu-dr.10356-668452023-03-03T20:30:22Z CoVim : converting Vim into a real-time collaborative text editor Satija, Parth Sun Chengzheng School of Computer Engineering DRNTU::Engineering CoVim is an ongoing project that aims to convert Vim editor to a multi-user real-time collaborative application using Transparent Adaptation approach. The present research and implementation of this project focuses towards the completion of CoVim by enhancing, reinventing and fixing the technologies and approaches used in the current system. The current system does not retain all the functionalities of Vim (such as, Redo, CTRL-X insert) and thus does not fulfil the principle of application compatibility [1]. Moreover, there are many problems found in the current implementation, one of which is in intercepting all the user-generated local operations. The objective of this Final Year Project is to make the application robust and user-friendly so that the “look-and-feel” of single-user Vim is retained in CoVim which should provide all the features of a good multi-user collaborative system. The main subject of this report is a new research area in the history of CoVim that aims at understanding the NetBeans Protocol API and its applicability to transparently adapt Vim to CoVim. Important concepts such as Vim Documents from the API’s Point of View, API features for local operation interception and remote operation replay, API-AO Adaptation and AO-API adaptation are discussed. Correct ways to intercept the local user operations using the NetBeans Protocol are implemented in the project. An operation merging algorithm to compress the intercepted operations is designed to minimize the number of AOs generated. Further study of the intercepted local operations is conducted to improve the delta based approach for AO derivation by applying the diff algorithms only on a well-defined address space of the document. This report also elaborates on the improvements made in the area of remote operation replay implemented in the current system. Improved algorithms are implemented in the VimScript plugin to replay insert and delete operations. Furthermore, another approach was introduced to adapt AOs to API level and replay the remote operations using the NetBeans Protocol. This reports demonstrates, with various examples and scenarios, that the research done in the area of the NetBeans Protocol API of CoVim is promising and essential in intercepting the local operations and replaying the AOs on the remote site. Bachelor of Engineering (Computer Science) 2016-04-28T01:53:46Z 2016-04-28T01:53:46Z 2016 Final Year Project (FYP) http://hdl.handle.net/10356/66845 en Nanyang Technological University 61 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering
spellingShingle DRNTU::Engineering
Satija, Parth
CoVim : converting Vim into a real-time collaborative text editor
description CoVim is an ongoing project that aims to convert Vim editor to a multi-user real-time collaborative application using Transparent Adaptation approach. The present research and implementation of this project focuses towards the completion of CoVim by enhancing, reinventing and fixing the technologies and approaches used in the current system. The current system does not retain all the functionalities of Vim (such as, Redo, CTRL-X insert) and thus does not fulfil the principle of application compatibility [1]. Moreover, there are many problems found in the current implementation, one of which is in intercepting all the user-generated local operations. The objective of this Final Year Project is to make the application robust and user-friendly so that the “look-and-feel” of single-user Vim is retained in CoVim which should provide all the features of a good multi-user collaborative system. The main subject of this report is a new research area in the history of CoVim that aims at understanding the NetBeans Protocol API and its applicability to transparently adapt Vim to CoVim. Important concepts such as Vim Documents from the API’s Point of View, API features for local operation interception and remote operation replay, API-AO Adaptation and AO-API adaptation are discussed. Correct ways to intercept the local user operations using the NetBeans Protocol are implemented in the project. An operation merging algorithm to compress the intercepted operations is designed to minimize the number of AOs generated. Further study of the intercepted local operations is conducted to improve the delta based approach for AO derivation by applying the diff algorithms only on a well-defined address space of the document. This report also elaborates on the improvements made in the area of remote operation replay implemented in the current system. Improved algorithms are implemented in the VimScript plugin to replay insert and delete operations. Furthermore, another approach was introduced to adapt AOs to API level and replay the remote operations using the NetBeans Protocol. This reports demonstrates, with various examples and scenarios, that the research done in the area of the NetBeans Protocol API of CoVim is promising and essential in intercepting the local operations and replaying the AOs on the remote site.
author2 Sun Chengzheng
author_facet Sun Chengzheng
Satija, Parth
format Final Year Project
author Satija, Parth
author_sort Satija, Parth
title CoVim : converting Vim into a real-time collaborative text editor
title_short CoVim : converting Vim into a real-time collaborative text editor
title_full CoVim : converting Vim into a real-time collaborative text editor
title_fullStr CoVim : converting Vim into a real-time collaborative text editor
title_full_unstemmed CoVim : converting Vim into a real-time collaborative text editor
title_sort covim : converting vim into a real-time collaborative text editor
publishDate 2016
url http://hdl.handle.net/10356/66845
_version_ 1759854106558595072