diff --git a/packages/open-collaboration-monaco/src/collaboration-instance.ts b/packages/open-collaboration-monaco/src/collaboration-instance.ts index bcb14ebb..cf81d0e8 100644 --- a/packages/open-collaboration-monaco/src/collaboration-instance.ts +++ b/packages/open-collaboration-monaco/src/collaboration-instance.ts @@ -496,7 +496,7 @@ export class CollaborationInstance implements Disposable { value = debounce(() => { this.yjsMutex(() => { const yjsText = this.yjs.getText(path); - const newContent = yjsText.toString(); + const newContent = this.adjustEol(yjsText.toString(), document.getEndOfLineSequence()); if (newContent !== document.getValue()) { this.updateDocumentContent(document, newContent); } @@ -657,4 +657,9 @@ export class CollaborationInstance implements Disposable { return decoder.decode(file.content); } } + + private adjustEol(text: string, eol: monaco.editor.EndOfLineSequence): string { + const newEol = eol === monaco.editor.EndOfLineSequence.LF ? '\n' : '\r\n'; + return text.replace(/\r?\n/g, newEol); + } }