From 2b21031bebbc270cef3f07530758d5ba49b0e9b3 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 8 Jan 2026 14:56:19 -0500 Subject: [PATCH] Fix CodeMirror stability and dispatch errors - Replaced dangerous custom dispatch override with EditorView.updateListener. - Resolved 'Uncaught TypeError: child is undefined' by allowing CodeMirror to manage its own update cycle. - Improved Svelte state syncing for new_content. --- src/lib/app_components/e_app_codemirror_v5.svelte | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/app_components/e_app_codemirror_v5.svelte b/src/lib/app_components/e_app_codemirror_v5.svelte index 3e194d1e..16b431e5 100644 --- a/src/lib/app_components/e_app_codemirror_v5.svelte +++ b/src/lib/app_components/e_app_codemirror_v5.svelte @@ -86,6 +86,13 @@ theme_mode == 'dark' ? cm_modules.oneDark : cm_modules.EditorView.baseTheme(), cm_modules.EditorView.contentAttributes.of({ spellcheck: 'true' }), // Enable spell check + // Sync document changes back to Svelte + cm_modules.EditorView.updateListener.of((update: any) => { + if (update.docChanged) { + new_content = update.state.doc.toString(); + } + }), + // Conditional extensions based on props editable ? cm_modules.EditorView.editable.of(true) : null, readonly ? cm_modules.EditorState.readOnly.of(true) : null, @@ -103,13 +110,7 @@ doc: content, extensions: editor_extensions }), - parent: editor_element, - dispatch: (transaction: any) => { - editorView.update([transaction]); - if (transaction.docChanged) { - new_content = editorView.state.doc.toString(); - } - } + parent: editor_element }); }