collaborative-monaco

Binding for collaborative editing support in Monaco Editor. Connects JSON CRDT str node to Monaco Editor.

8 个版本
安装
npm install collaborative-monaco
yarn add collaborative-monaco
pnpm add collaborative-monaco
bun add collaborative-monaco
README

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.

Usage

Installation:

npm install json-joy monaco-editor collaborative-monaco

Usage:

import {bind} from 'collaborative-monaco';
import * as monaco from 'monaco-editor';
import {Model} 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.
binding.unbind();

React Usage

Installation:

npm install json-joy monaco-editor collaborative-monaco @monaco-editor/react react react-dom

Usage:

import {Model, s} from 'json-joy/lib/json-crdt';
import {CollaborativeMonaco} from 'collaborative-monaco/lib/CollaborativeMonaco';

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

const MyComponent = () => {
  return <CollaborativeMonaco str={model.s.toApi()} />
};

Preview

版本列表
1.6.0 2025-05-16
1.5.0 2024-10-11
1.4.0 2024-10-11
1.3.0 2024-07-24
1.2.1 2024-07-19
1.2.0 2024-07-18
1.1.0 2024-07-17
1.0.0 2023-12-03