Ramesh-vani's picture
Upload 32 files
341f1e9 verified
const sourceUser = {
id: "source",
label: "Source User",
color: "orange"
};
const staticUser = {
id: "static",
label: "Static User",
color: "blue"
};
const sourceEditorTextArea = document.getElementById("source-editor");
const sourceEditor = new CodeMirror(sourceEditorTextArea, {
mode: "javascript",
lineNumbers: true,
value: editorContents
});
const targetEditorTextArea = document.getElementById("target-editor");
const targetEditor = new CodeMirror(targetEditorTextArea, {
mode: "javascript",
lineNumbers: true,
value: editorContents
});
const remoteCursorManager = new CodeMirrorCollabExt.RemoteCursorManager({
editor: targetEditor,
tooltips: true,
tooltipDuration: 2
});
const sourceUserCursor = remoteCursorManager.addCursor(sourceUser.id, sourceUser.color, sourceUser.label);
const staticUserCursor = remoteCursorManager.addCursor(staticUser.id, staticUser.color, staticUser.label);
staticUserCursor.setIndex(50);
const remoteSelectionManager = new CodeMirrorCollabExt.RemoteSelectionManager({editor: targetEditor});
const sourceUserSelection = remoteSelectionManager.addSelection(sourceUser.id, sourceUser.color);
remoteSelectionManager.addSelection(staticUser.id, staticUser.color);
sourceEditor.on("cursorActivity", () => {
setTimeout(() => {
sourceUserCursor.setPosition(sourceEditor.getCursor());
sourceUserSelection.setPositions(
sourceEditor.getCursor("from"),
sourceEditor.getCursor("to")
);
}, 0);
});
const targetContentManager = new CodeMirrorCollabExt.EditorContentManager({
editor: targetEditor,
id: "target"
});
const sourceContentManager = new CodeMirrorCollabExt.EditorContentManager({
editor: sourceEditor,
id: "source",
onInsert(index, text) {
targetContentManager.insert(index, text);
},
onReplace(index, length, text) {
targetContentManager.replace(index, length, text);
},
onDelete(index, length) {
targetContentManager.delete(index, length);
}
});