mcpField
A
ast-grep-find

ast-grep-find

github.com/parcadei开发3.9k520 次安装39 周前更新
代码仓库

关于 ast-grep-find

基于 AST 模式进行语法感知代码搜索与重构的技能,支持 Python、JavaScript、TypeScript、Go 等语言,并依赖 ast-grep MCP 服务。

主要功能

  1. 01搜索语法结构模式
  2. 02匹配调用、导入和定义
  3. 03替换匹配的代码结构
  4. 04通过 dry run 预览修改
  5. 05按路径或 glob 筛选搜索

适用场景

  1. 01忽略注释查找函数调用
  2. 02定位导入或类定义
  3. 03重构重复代码模式
  4. 04应用前预览修改内容

MCP 相关

该技能需要在 `mcp_config.json` 中配置 `ast-grep` MCP 服务,才能执行搜索和重构。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/parcadei/continuous-claude-v3 --skill ast-grep-find

安装后在 Claude Code 中输入/ast-grep-find确认已加载。

详细介绍

AST-Grep 查找

理解语法的结构化代码搜索。查找函数调用、导入、类定义等模式,而不只是搜索文本。

适用场景

  • 查找代码模式(忽略字符串和注释)
  • 搜索函数调用、类定义和导入
  • 以 AST 精度重构代码
  • 在整个代码库中重命名变量或函数

用法

搜索模式
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "import asyncio" --language python
在指定目录中搜索
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "async def \$FUNC(\$\$\$)" --language python --path "./src"
重构/替换模式
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "console.log(\$MSG)" --replace "logger.info(\$MSG)" \
    --language javascript
试运行(预览更改)
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "print(\$X)" --replace "logger.info(\$X)" \
    --language python --dry-run

参数

参数描述
--pattern要搜索的 AST 模式(必填)
--language语言:python、javascript、typescript、go 等
--path要搜索的目录(默认值:.)
--glob文件 glob 模式(例如,**/*.py)
--replace用于重构的替换模式
--dry-run预览更改但不应用
--context上下文行数(默认值:2)

模式语法

语法含义
$NAME匹配单个节点(变量、表达式)
$$$匹配多个节点(参数、语句)
$_匹配任意单个节点(通配符)

示例

# Find all function definitions
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "def \$FUNC(\$\$\$):" --language python

# Find console.log calls
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "console.log(\$\$\$)" --language javascript

# Replace print with logging
uv run python -m runtime.harness scripts/ast_grep_find.py \
    --pattern "print(\$X)" --replace "logging.info(\$X)" \
    --language python --dry-run

与 morph/warpgrep 对比

工具最适合
ast-grep结构化模式(理解代码语法)
warpgrep快速文本/正则表达式搜索(比 grep 快 20 倍)

需要语法感知匹配时使用 ast-grep。追求原始速度时使用 warpgrep。

需要 MCP 服务

需要在 mcp_config.json 中配置 ast-grep 服务。

评论

支持 Markdown