Skip to main content

Module codemirror

Module codemirror 

Source
Expand description

CodeMirror SQL/代码编辑器桥接:extern 与 EditorHandle 在 #[cfg(wasm32)] 子模块里。 SQL 补全 schema DTO(SqlSchema/SqlTable)是 server function 返回值, 定义在 crate::models::sql_schema,不在本模块。 CodeMirror 编辑器的 wasm-bindgen 绑定层。

封装与 window.CodeMirrorEditor(IIFE 暴露的全局对象字面量)的全部交互, 严格镜像 crate::bridges::tiptap 的结构:wasm-bindgen extern + EditorHandle 仅在 WASM 前端编译(server 构建无 window)。SQL 补全用的 SqlSchema/SqlTable 是 server function 返回值 DTO,定义在 crate::models::sql_schema(不属于本文件——避免 API 层反向依赖桥接层)。

与 tiptap 一样,create 以 js_namespace 绑定为成员调用,调用时才解析全局; 脚本未加载时返回 Err。

用法(Leptos):挂载点用 NodeRef 取元素,先用 use_browser_library(BrowserLibrary::CodeMirror, ..) 等库就绪, 再在 Effect 内构造 EditorOptions 并 create(&element, &opts);EditorHandle 含 JS 引用 (非 Send + Sync),放进 StoredValue::new_local/RwSignal::new_local,on_cleanup 里 take 出来丢弃即触发 Drop → destroy。