AST-workers:基于多种语言的AST结构提供代码查询、插入和统计等功能,以避免因文件修改而产生的异常和结构性损害

1 阅读1分钟

AST-workers 是一个开源工具集,旨在解决传统文本编辑方式在修改源代码时常见的痛点:上下文丢失、行号错乱、缩进破坏、语法失效等。它基于多种编程语言的抽象语法树(AST)结构,提供精确、安全的代码查询、插入、修改、删除和统计功能,确保操作后代码仍保持语法正确并自动处理格式。

项目核心采用语言无关的 MCP 服务器作为中枢,接收 JSON 格式请求,根据文件后缀或显式语言参数转发给对应的语言子进程。目前已完整支持 Python(通过 ast-workers-py 实现),TypeScript/JavaScript、Go、Rust 等语言的 worker 模块正在规划中。

主要功能包括:

  1. 插入/更新/删除函数、类、导入语句
  2. 重命名符号(支持点式路径,如 Module.Class.method)
  3. 查询符号列表、查找/展示特定符号上下文
  4. 批量操作(一次请求执行多条变更)
  5. 语法验证与自动格式化

使用方式非常适合与 AI 编程助手或 IDE 插件集成:只需发送结构化的 JSON payload,即可完成高精度重构,避免文本替换带来的副作用。输入支持声明式描述,也允许以列表/元组形式提供多行代码体,自动处理缩进。

github:nostalgiatan/AST-workers