{"id":42229432,"url":"https://github.com/loro-dev/loro-codemirror","last_synced_at":"2026-01-27T02:43:09.437Z","repository":{"id":273509361,"uuid":"919425747","full_name":"loro-dev/loro-codemirror","owner":"loro-dev","description":"codemirror binding for loro","archived":false,"fork":false,"pushed_at":"2025-10-07T08:25:08.000Z","size":103,"stargazers_count":35,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-10-13T03:34:34.985Z","etag":null,"topics":["codemirror","crdt","editor","local-first","loro"],"latest_commit_sha":null,"homepage":"https://loro.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loro-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-20T11:17:06.000Z","updated_at":"2025-10-07T08:24:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"fcaf8e69-6e1f-4323-b0f1-24881ee7f0b9","html_url":"https://github.com/loro-dev/loro-codemirror","commit_stats":null,"previous_names":["loro-dev/loro-codemirror"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/loro-dev/loro-codemirror","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loro-dev%2Floro-codemirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loro-dev%2Floro-codemirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loro-dev%2Floro-codemirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loro-dev%2Floro-codemirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loro-dev","download_url":"https://codeload.github.com/loro-dev/loro-codemirror/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loro-dev%2Floro-codemirror/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28796987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T01:07:07.743Z","status":"online","status_checked_at":"2026-01-27T02:00:07.755Z","response_time":168,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codemirror","crdt","editor","local-first","loro"],"created_at":"2026-01-27T02:43:08.288Z","updated_at":"2026-01-27T02:43:09.429Z","avatar_url":"https://github.com/loro-dev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Codemirror Binding for Loro\n\n- Sync document state with Loro\n- Sync cursors with Loro's Awareness and\n  [Cursor](https://loro.dev/docs/tutorial/cursor)\n- Undo/Redo in collaborative editing\n\n## Usage\n\n```ts\nimport { EditorState } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { LoroExtensions } from \"loro-codemirror\";\nimport { EphemeralStore, LoroDoc, UndoManager } from \"loro-crdt\";\n\nconst doc = new LoroDoc();\nconst ephemeral = new EphemeralStore();\nconst undoManager = new UndoManager(doc, {});\n\nnew EditorView({\n    state: EditorState.create({\n        extensions: [\n            // ... other extensions\n            LoroExtensions(\n                doc,\n                // optional LoroEphemeralPlugin\n                {\n                    ephemeral,\n                    user: { name: \"Bob\", colorClassName: \"user1\" },\n                },\n                // optional LoroUndoPlugin\n                undoManager,\n            ),\n        ],\n    }),\n    parent: document.querySelector(\"#editor\")!,\n});\n```\n\nYou can find the example\n[here](https://github.com/loro-dev/loro-codemirror/tree/main/example).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floro-dev%2Floro-codemirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floro-dev%2Floro-codemirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floro-dev%2Floro-codemirror/lists"}