术语表

按字母/拼音整理本仓库高频出现的术语,给定义并指向相关页。

核心概念

  • tsgo / typescript-go:TypeScript 编译器的 Go 移植版,模块 github.com/microsoft/typescript-go。ttsc 建在它之上。catalog 固定 typescript@7.0.1-rc
  • shimpackages/ttsc/shim/<name>,把 tsgo 的 internal/* 包逐个再导出,因为 Go 禁止跨模块 import internal/。见 shim 子系统
  • driverpackages/ttsc/driver,Go 侧编译器外观层,唯一允许 import shim 的包。见 driver 子系统
  • 原生宿主 / sidecar(旁车):ttsc spawn 的 Go 二进制(cmd/ttsccmd/utility-host 等),做编译/转换/lint 重活。
  • 插件描述符transform 指向的 JS 模块返回的 ITtscPlugin,声明 Go 源、阶段、能力。见 描述符协议

插件机制

  • stage(阶段)"check"(emit 前跑、报诊断)或 "transform"(emit 阶段注入)。checktransform 前。
  • kind(种类)executablepackage main,独立旁车)或 linked(非 main 包,链接进通用宿主)。只有 transform 能 linked。
  • composes(水平组合):多个插件条目派发到一个二进制,各仍是顶层公民。
  • contributors(垂直组合):一个二进制静态链接额外 Go 源,不作顶层条目出现(如 lint 第三方规则)。
  • 共享宿主:多个 transform 插件共享的拥有 emit 进程的那个二进制(selectSharedHostPlugin)。
  • 链接插件 manifestTTSC_LINKED_PLUGINS_JSON,driver 按注册顺序配对。

CLI

  • ttsc:build/check/watch/transform CLI。
  • ttsx:带类型检查的 TypeScript 执行器。见 ttsx 运行时
  • ttscserver:LSP 宿主,代理 tsgo --lsp --stdio。见 LSP 代理
  • ttscgraph:图谱 dump CLI。
  • fix / format:check 插件的 autofix 子命令;fix 跑 lint+format,format 只跑 format 且不类型检查。

编译器内部

  • Programdriver.Program,下游唯一看到的 shim 无关外观,持 tsgo Program + 租来的 Checker。
  • Checker / 单 checker 约束:ttsc 把 checker 池钉到 1(forceSingleChecker),因串行 transform/rewrite 需同一 checker。见 Program 与 Checker
  • emit 重写:在 tsgo emit 出的 JS 里植入插件代码。两条路径:文本 splice(rewrite.go,旧)与 AST 集成(emit_plugin.go,新)。见 Emit 与重写
  • RewriteSentinel/* @ttsc-rewritten */,标记已 patch 文件让重跑 emit 幂等。
  • source preamble:插件在 parse 前注入的源文本(如 banner)。
  • overlay FS:内存编辑覆盖在真实文件系统上的 VFS,Session 与 serve 用。

lint

  • Rule / Engine / Context:lint 三核心抽象。Rule 注册、Engine 遍历分派、Context 是 per-(file,rule) 句柄。见 lint 引擎
  • Finding:规则报的诊断,带 IsFormat 标志。
  • FormatRule / typeAwareRule:标记接口,分别标格式化规则与需 checker 的规则。
  • format blocklint.config.ts 里配置格式化的专门块(不是 rules map)。

代码图谱

  • Node / Edge:图谱节点(声明)与边(checker 解析的关系)。Node ID 位置无关(path#name:kind)。
  • barrel re-exportindex.ts re-export 兄弟符号;图谱靠 Checker_getAliasedSymbol 解包。见 构建与解析
  • external leaf:node_modules / .d.ts 边界节点,只作边目标进图。
  • MCP:Model Context Protocol,@ttsc/graph 经它向编码代理暴露图谱。

构建与缓存

  • buildSourcePlugin:把 Go 插件源编译成缓存二进制的引擎。见 go build 缓存
  • 缓存键:覆盖所有能改变二进制的输入的 SHA-256。
  • 跨进程构建锁mkdir 原子锁,让 fan-out 只构建一次。
  • 打包 Go SDK:平台包 bin/go/,让 ttsc 不依赖系统 Go。
  • overlay 目录 / go.work:插件构建时把 shim 模块 wire 进去的机制。

工具链

  • gen_shims:生成 shim surface.go 的生成器。
  • shim_audit:shim 完整性闸门(三层 + 遍历探针)。
  • gen-flags:从 schema 生成 flag 表的生成器。
  • bumpp:版本递归 bump 工具。

接下来