跳转到主要内容
Cargo workspace 由 crates/* 加 src-tauri 组成(见根目录 Cargo.toml)。插件和插件端 SDK 面向 wasm32-wasip2 在各自的 workspace 中构建,不在其中。

规则

  • 一个 crate 一个领域。 功能 crate 端到端负责自己的领域:数据模型、I/O、协议,以及到 IPC 类型的转换。
  • 共享类型放在 ide-core。 任何跨 crate 或跨 IPC 的类型(id、Pos/Range、IdeError、IdeEvent、设置类型)都在这里定义,并派生 specta::Type。
  • 不触碰其他 crate 的内部实现。 只用它的公开 API,或者把共享类型挪进 ide-core。
  • 在 crate 边界把错误转换成 IdeError。
  • ide-host 负责组装,src-tauri 负责适配。 ide-host 把各 crate 组装成不依赖 UI 的后端(Host、Project、ops/);src-tauri 把它暴露为 Tauri 命令。属于功能 crate 的领域逻辑两者都不该放。
每个 crate 的 lib.rs 开头都有一段模块文档注释,描述它的契约;改动之前先读一读。

基础

代码智能

运行、调试与构建

工具与集成

远程

插件

桌面与操作系统

workspace 之外