aardio 文档

string.patch 库模块帮助文档

string.patch 成员列表 #

SEARCH/REPLACE 文本补丁(Aider 风格)解析与应用库。
这个库主要用于 AI Agent 自动化工具调用,属于 AA(aardio autos) 代码手术刀的底层组件。

string.patch.apply(text, patchText, options) #

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 等诊断信息。*/

string.patch.buildChangePreview(before, after, maxBytes) #

构建首个差异区间附近的变更预览,返回 startIndex/startLine/oldContext/newContext/可视化上下文等字段;无变化返回 null。

string.patch.charName(code) #

将字节码转为可读名称。
例如 9 → "TAB",32 → "SPACE",10 → "LF",null → "EOF",可打印 ASCII 返回字符本身。

string.patch.diagnose(text, searchText) #

当匹配失败时查找最相似位置,返回包含调试线索的表或 null。
返回值包含 nearestPos、nearestLine、matchPercent、firstDiffAt、
nearestContext、nearestContextVisualized、targetVisualized 等字段。

string.patch.findAll(text, searchText) #

在文本中查找所有 searchText 出现的位置(包含重叠出现)。
返回一个包含 {startPos; endPos} 的数组。

string.patch.lineOfIndex(text, index) #

计算指定字节位置在文本中对应的行号(自 1 开始),兼容 CRLF、LF、CR。

string.patch.parse(patchText) #

解析 Aider 风格的 SEARCH/REPLACE 补丁文本。
成功返回数组,每个元素为 {search = "搜索文本"; replace = "替换文本"}。
格式错误返回 null,err,info。

string.patch.visualizeWhitespace(text, maxLen) #

可视化文本中的空白与控制字符。
SPACE→·, TAB→⇥, LF→↓, CR→⇠, CRLF→↵↓, NUL→∅。
可选用 maxLen 截断(默认 200)。

Markdown 格式