Skip to content

Latest commit

 

History

History
40 lines (25 loc) · 1.02 KB

File metadata and controls

40 lines (25 loc) · 1.02 KB

Collaborative editing for Monaco editor

Makes a plain Monaco editor instance collaborative by binding it to a JSON CRDT document str node. This allows multiple users to edit the same document json-joy JSON CRDT document concurrently through the Monaco editor.

collab-monaco-demo

Usage

Installation:

npm install json-joy @jsonjoy.com/collaborative-monaco monaco-editor

Usage:

import {bind} from '@jsonjoy.com/collaborative-monaco';
import * as monaco from 'monaco-editor';
import {Model, s} from 'json-joy/lib/json-crdt';

const model = Model.create(s.str('hello'));

const editor = monaco.editor.create(div, {
  value: 'hello world',
});

const unbind = bind(() => model.s.toApi(), editor);

// When done, unbind the binding.
unbind();

React Usage

For React integration, use the @jsonjoy.com/collaborative-monaco-react package.