Skip to main content

Module xterm

Module xterm 

Source
Expand description

xterm.js 终端桥接:结构镜像 codemirror。 xterm.js 终端桥接:输出专用(无 stdin),配合 SSE 流式渲染容器 stdout/stderr。

镜像 codemirror.rs 范式:

  • window.XtermTerminal 是 IIFE 产物挂在 window 上的对象字面量(含 create 方法); create 以 js_namespace 绑定为成员调用,调用时才解析全局,脚本未加载时返回 Err。
  • XtermOptions 是普通 JS 对象(TS 侧为 interface):XtermOptions::default() 得到空对象,再用 setter 填充。
  • TerminalHandle 持有实例 + onReady 闭包,Drop → destroy()。

WASM-only:所有 extern 与 handle 都在 #[cfg(target_arch = "wasm32")] mod wasm 内, server 构建整体剥离。无跨目标共享数据(纯渲染层)。

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