explore-codebase
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseExplore Codebase
探索代码库
Tool Selection
工具选择
| Need | Tool |
|---|---|
| Structural patterns (functions, classes) | |
| Text/regex patterns (strings, names) | |
| File discovery by name/extension | |
Decision flow: Find files first? → pipe to /. Syntax-aware match needed? . Fast text search? . Uncertain? Start with , escalate to if structure matters.
fdrgsgsgrgrgsg| 需求 | 工具 |
|---|---|
| 结构化模式(函数、类) | |
| 文本/正则模式(字符串、名称) | |
| 按名称/扩展名检索文件 | |
决策流程:需要先查找文件?使用 → 管道输出到/。需要语法感知匹配?使用。需要快速文本搜索?使用。不确定的话?先从开始,若结构很重要再切换到。
fdrgsgsgrgrgsgast-grep Essentials
ast-grep 核心要点
ast-grep is the least familiar tool -- key syntax summarized here. See references/ast-grep.md for language-specific patterns and YAML rule files.
bash
sg -p 'PATTERN' -l LANG [PATH]
sg -p 'PATTERN' --has 'INNER' -l LANG # Must contain
sg -p 'PATTERN' --not-has 'INNER' -l LANG # Must not contain
sg -p 'PATTERN' --inside 'OUTER' -l LANG # Must be withinast-grep是相对陌生的工具——此处汇总了其核心语法。语言特定模式和YAML规则文件请参考references/ast-grep.md。
bash
sg -p 'PATTERN' -l LANG [PATH]
sg -p 'PATTERN' --has 'INNER' -l LANG # 必须包含
sg -p 'PATTERN' --not-has 'INNER' -l LANG # 必须不包含
sg -p 'PATTERN' --inside 'OUTER' -l LANG # 必须在内部Metavariables
元变量
| Syntax | Captures | Example |
|---|---|---|
| Single node | |
| Zero or more nodes | |
| Non-capturing | |
Rules: must be UPPERCASE, same name = same content ( matches not ).
$A == $Ax == xx == y| 语法 | 捕获内容 | 示例 |
|---|---|---|
| 单个节点 | |
| 零或多个节点 | |
| 非捕获型 | |
规则:必须为大写,同名变量表示内容相同(匹配,而非)。
$A == $Ax == xx == yExamples
示例
bash
sg -p 'function $NAME($$$ARGS) { $$$ }' -l js
sg -p 'async function $NAME($$$) { $$$ }' --has 'await $EXPR' -l js
sg -p 'class $NAME extends $PARENT { $$$ }' -l ts
sg -p 'def $NAME($$$): $$$' -l pybash
sg -p 'function $NAME($$$ARGS) { $$$ }' -l js
sg -p 'async function $NAME($$$) { $$$ }' --has 'await $EXPR' -l js
sg -p 'class $NAME extends $PARENT { $$$ }' -l ts
sg -p 'def $NAME($$$): $$$' -l pyripgrep / fd Quick Reference
ripgrep / fd 速查表
Standard CLI tools -- use references/ripgrep.md and references/fd.md for full flag tables.
bash
rg PATTERN -t TYPE [PATH] # Search by file type
rg -F 'LITERAL' -t TYPE # Fixed string (no regex)
rg PATTERN -l # List matching files only
rg PATTERN -C 3 # With context lines
fd -e EXT [PATH] # Find by extension
fd PATTERN [PATH] # Find by name regex
fd -e py | xargs rg 'pattern' # Pipe fd into rg标准CLI工具——完整的参数表请参考references/ripgrep.md和references/fd.md。
bash
rg PATTERN -t TYPE [PATH] # 按文件类型搜索
rg -F 'LITERAL' -t TYPE # 固定字符串(无正则)
rg PATTERN -l # 仅列出匹配的文件
rg PATTERN -C 3 # 显示上下文行
fd -e EXT [PATH] # 按扩展名查找
fd PATTERN [PATH] # 按名称正则查找
fd -e py | xargs rg 'pattern' # 将fd结果管道到rgPerformance
性能优化
- Narrow scope first:
fd -e py src/ | xargs rg 'class.*Test' - Always use type filters: ,
rg PATTERN -t rustsg -p 'PATTERN' -l rs - Exclude artifacts:
rg PATTERN -g '!node_modules' -g '!dist'
- 先缩小范围:
fd -e py src/ | xargs rg 'class.*Test' - 始终使用类型过滤:,
rg PATTERN -t rustsg -p 'PATTERN' -l rs - 排除构建产物:
rg PATTERN -g '!node_modules' -g '!dist'