SEARCH/REPLACE 文本补丁(Aider 风格)解析与应用库。
这个库主要用于 AI Agent 自动化工具调用,属于 AA(aardio autos) 代码手术刀的底层组件。
string.patch.apply("<查找文本>", `
<<<<<<< SEARCH
<查找文本>
=======
<替换文本>
>>>>>>> REPLACE`)/*将 Aider 风格的补丁应用到文本,分隔符都必须是 7 个字符,多补丁用空行分隔。
options 可选字段:
- changePreview=true 返回 info 包含变更预览 changePreview 字段;
- previewMaxBytes 指定预览大小;
- maxDuplicateMatches 限制重复匹配诊断数量。
成功返回 3 个值:
1. newText: 应用补丁后的新文本
2. null
3. info: 包含 { blocksApplied; originalEol; changed; matches; changePreview } 的表。
失败返回 3 个值:
1. null
2. err: 错误描述
3. errInfo: 包含 blockIndex、matchCount、diagnostics、hint 等诊断信息。*/
构建首个差异区间附近的变更预览,返回 startIndex/startLine/oldContext/newContext/可视化上下文等字段;无变化返回 null。
将字节码转为可读名称。
例如 9 → "TAB",32 → "SPACE",10 → "LF",null → "EOF",可打印 ASCII 返回字符本身。
当匹配失败时查找最相似位置,返回包含调试线索的表或 null。
返回值包含 nearestPos、nearestLine、matchPercent、firstDiffAt、
nearestContext、nearestContextVisualized、targetVisualized 等字段。
在文本中查找所有 searchText 出现的位置(包含重叠出现)。
返回一个包含 {startPos; endPos} 的数组。
计算指定字节位置在文本中对应的行号(自 1 开始),兼容 CRLF、LF、CR。
解析 Aider 风格的 SEARCH/REPLACE 补丁文本。
成功返回数组,每个元素为 {search = "搜索文本"; replace = "替换文本"}。
格式错误返回 null,err,info。
可视化文本中的空白与控制字符。
SPACE→·, TAB→⇥, LF→↓, CR→⇠, CRLF→↵↓, NUL→∅。
可选用 maxLen 截断(默认 200)。