weekly
weekly copied to clipboard
【工具自荐】ast-grep VSCode——更智能、更方便的代码搜索替换工具
正则表达式虽然强大,但在处理代码搜索和替换时,无法跨行匹配,处理嵌套结构效果不佳,且很难有效地忽略注释,使得其应用范围受限。
推荐一款新VS Code插件——ast-grep VSCode,运用结构化搜索与替换(Structural Search/Replace)的技术,有效解决了这些问题。 支持众多的编程语言,包括JavaScript、TypeScript、Python、Ruby、Java、C#、Go、Rust等等。它在编辑器内部直接进行SSR查询,无需切换搜索环境,让搜索替换过程更加流畅;而查询结果边执行边显示,能即时查看和编辑,大大提高了工作效率。
此外,ast-grep VSCode还支持linting和代码修复功能,可以方便自定义Linter规则。
| 特性 | 截图 |
|---|---|
| 搜索模式 | ![]() |
| 替换预览 | ![]() |
| 代码lint | ![]() |
天呐,这简直太酷了
这下舒服了
That's cool.
@ruanyf 周刊292中对于此工具的介绍错误,对 AST(抽象语法树)搜索/替换而不是正则表达式。二者各有优劣,不过一个比较明确的方面是 AST 替换可以简单且正确地处理括号之类的嵌套(正则正确处理必须使用递归正则,这个东西似乎到现在也就Perl有?)。
@no1xsyzy 感谢指正!能看那么仔细真是太感谢了! ast-grep主要解决的是正则不能理解代码而且难写的问题,比较适合代码重构的场景。
大神呀, 这支持C++吗?
@uctdsb https://ast-grep.github.io/reference/languages.html 支持的
希望能支持markdown,比如搜出所有图片
@amitbha 可以使用自定义语言扩展 来支持markdown的搜索
大神呀, 这支持C++吗?
同问,嵌入式C和misra-c支持否;
@AmyJobs 有 C 语言支持 https://ast-grep.github.io/catalog/c/ 更细化的 C 语言guideline 还是 C 语言


