SuperAPI AI 工具集

clj-replace

通用与其它

查看项目

更新于 10-15 22:15

技能介绍

用途:clj-replace 用于替换 Clojure 或 Babashka 代码。当 Claude Code 内置的 str_replace 因 old_string 与目标代码的格式(空白、缩进、换行)不一致而报“old_string not found”时,可改用本工具,它按代码结构而非字面文本进行匹配。

主要能力:将 old-string 与文件内容解析为 S 表达式树(zipper),逐节点做结构比较,忽略空格、缩进和换行差异;匹配后替换节点,并保留原文件的格式与风格。因此 (foo bar)、(foo bar) 与跨行写法被视为等价。

使用方式:命令形式为 /clj-replace path/to/file.clj "old code here" "new code here",三个位置参数依次为文件名、待查找代码片段、替换代码片段。

退出码:0 表示成功替换一个或多个节点;1 表示文件不存在或 old-string/new-string 不是合法 Clojure;2 表示未找到匹配的 S 表达式;3 表示找到多个匹配(有歧义),需提供更具体的 old-string。成功时输出替换节点数、位置及新旧内容;歧义时列出各匹配位置。

适用场景:格式不一致导致文本替换失败、希望替换后保持原文件排版风格、需要按结构定位 Clojure 表单。

限制:仅适用于 Clojure/Babashka 代码;依赖 rewrite-clj 库;匹配到多个相同结构时不会自动选择,必须由用户提供更具体的上下文。其他平台、收费与安装方式资料暂未提供。