ast-grep获得六千星星⭐️!

很高兴地宣布,强大的代码搜索工具 ast-grep 在 GitHub 上已经达到了 6000 星的里程碑!这证明了社区对我们工具的信任和我们不断改进的成果。让我们深入了解 ast-grep 最新的功能和增强,看看它是如何成为全球开发者首选工具的。

功能增强

  • 重写器的添加 :我们添加了重写器支持 #855,使复杂的代码转换和重构变得轻而易举。新功能解锁了一种类似于函数式编程的代码重写方案:查找并修补。更多细节请查看我们之前的博客文章。
  • 错误/警告抑制支持 :新功能 #446 允许用户通过代码注释 ast-grep-ignore 抑制特定错误或警告。ast-grep 还在语言服务器协议(LSP)中尊重抑制注释,使管理代码库中的警告和错误变得更容易。

  • 更强的constraints :ast-grep 规则 constraints 以前只接受 pattern、kind 和 regex,现在它接受完整的 rule #855,提供了前所未有的灵活性。

VSCode 扩展

ast-grep VSCode 扩展 是此 CLI 工具的官方 VSCode 集成,将结构化搜索和替换(SSR)的强大功能直接带入编辑器。

主要功能

  • 搜索:使用语法树查找代码模式。
  • 替换:使用模式重构代码。
  • 诊断:通过 ast-grep 规则识别问题。

Demo请参考👇这个BILI视频 ast-grep vscode:SSR还能这么玩_哔哩哔哩_bilibili

性能提升

  • 并行线程输出修复 :重要修复 #be230ca 确保并行线程输出得到保证,提升了整体性能。

架构演进

  • Tree-Sitter 版本升级 :我们升级到了最新的 tree-sitter 版本,提高了解析准确性和速度。在未来的版本中,我们计划利用 tree-sitter 的新 Web Assembly 用法来支持更多语言。
  • 扫描和差异合并 :在重构中将 CombinedScan::scan 和 CombinedScan::diff 结合起来,使流程更加简化。
  • 输入流优化 :现在,ast-grep 在更新所有规则时避免了不必要的输入流使用 #943,使 sg scan --update-all 成为可能。

可用性改进

  • 规则文件解析错误信息 :VSCode 扩展现在在规则文件解析失败时提供更清晰的错误信息 #968,使排障变得更加简单。

  • 更好的模式解析 :改进了扩展字符替换 #883,使模式解析更加完善。

  • 更宽松的pattern :pattern的解析变得更加宽松 #1087,允许使用不同语法种类匹配 $METAVAR。

更好的报错信息

我们引入了一系列功能来改善报错信息,使调试和改进规则变得更加容易:

  • 报告未定义的元变量、修复中的错误、未使用的重写器和未定义的实用规则。
  • 为关系规则添加字段 ID 错误,并优化测试更新以避免错误报告。
  • 从报告文件计数转向报告错误计数,以更有意义地了解代码质量。

语言支持扩展

  • Haskell 支持 :Haskell 爱好者有福了!ast-grep 现在通过 tree-sitter-haskell 支持 Haskell #1128,扩展了我们的语言覆盖范围。

NAPI 进展

  • NAPI Linux x64 musl 支持 :我们在 NAPI 中的最新成就 #c4d7902 增加了对 Linux x64 musl 的支持,确保了更广泛的兼容性和性能。

感谢

随着 ast-grep 的不断成长,我们始终致力于提供不仅满足而且超越我们多样化用户群期望的工具。

感谢每一位支持者,特别是 ast-grep 的赞助者,感谢你们的支持、贡献和反馈,使 ast-grep 成为今天的样子。期待更多的里程碑!

相关推荐
miofly1 小时前
Claude Sonnet 5自主选药选坐标完成小鼠脑部手术,更强模型拒绝执行
开源·github
hhhjhl3 小时前
开源鸿蒙平台 KMP_CMP 三方库「Clikt」适配全流程
华为·开源·harmonyos
小杨互联网3 小时前
Rust 现代 CLI 工具离线镜像合集
开源·工具·离线镜像
深蓝AI3 小时前
一个版本号失守:Claude Code 2.1.313 扩展后门事件,开发者机器如何变成别人的 SSH 入口
安全·程序员
IvorySQL5 小时前
开源数据库进校园| 11 月 3 日,IvorySQL 校园行走进浙大宁波校区:从 PostgreSQL 扩展生态到 AI 实战
数据库·postgresql·开源
深蓝AI6 小时前
Ghostty 1.4 七个月打磨:ASCII 解析快 5.7 倍、终端能放动画,SSH 乱码终结
程序员·开源
码上观世界6 小时前
从几个抓网页的开源项目讲起
开源
时早玖沐6 小时前
KOOK「找不到语音频道」:同一个错误假设,我犯了三次
python·开源·ai编程
Raas1006 小时前
AI网关怎么部署?MAI Gateway部署实操教程
人工智能·开源·gateway·mai gateway·企业级ai产品
Solara6 小时前
绿灯连亮 6 天、今天我真写了 4 KB:这盏灯从没看过我写的那一层
人工智能·程序员·ai编程