📂 Glob: Busca por Padrao de Arquivo
Glob encontra arquivos baseado em padroes de nome. E como um "find" ultra-rapido, otimizado para qualquer tamanho de codebase.
📋 Parametros do Glob
| Parametro | Tipo | Descricao |
|---|---|---|
| pattern | string | Padrao glob (ex: "**/*.js") |
| path | string | Diretorio inicial (default: cwd) |
Padroes Glob Comuns
**/*.js
Todos JS em subpastas
src/**/*.{ts,tsx}
TS e TSX em src/
*.config.*
Arquivos de config
tests/**/test_*.py
Testes Python
💡 Dica
Resultados sao ordenados por data de modificacao - arquivos mais recentes primeiro. Isso e util para encontrar arquivos recem-editados.
🔎 Grep: Busca por Conteudo
Grep busca texto dentro de arquivos usando regex. Construido sobre ripgrep (rg), e extremamente rapido mesmo em projetos enormes.
📋 Principais Parametros do Grep
| Parametro | Descricao |
|---|---|
| pattern | Regex a buscar |
| path | Diretorio ou arquivo |
| output_mode | content | files_with_matches | count |
| glob | Filtrar por padrao de arquivo |
| type | Tipo de arquivo (js, py, rust...) |
| -i | Case insensitive |
Exemplos de Uso
# Buscar funcao em todo projeto
Grep(pattern="def calcular_", path="/projeto")
# Buscar apenas em arquivos Python
Grep(pattern="import pandas", type="py")
# Ver conteudo com contexto
Grep(pattern="TODO", output_mode="content", -C=3)
📊 Modos de Saida do Grep
O parametro output_mode controla o que Grep retorna. Escolha baseado no que voce precisa saber.
files_with_matches
Apenas nomes dos arquivos (default)
/projeto/lib/utils.py
content
Linhas que fazem match
utils.py:25: def calcular_total()
count
Contagem por arquivo
utils.py: 12
📐 Contexto com -A, -B, -C
Quando usando output_mode: "content", voce pode
adicionar linhas de contexto:
-A=N- N linhas depois (After)-B=N- N linhas antes (Before)-C=N- N linhas antes E depois (Context)
🎯 Regex Essencial para Grep
Grep usa sintaxe ripgrep (similar a Perl/PCRE). Alguns padroes uteis para buscas de codigo.
Padroes Uteis
function\s+\w+
Declaracoes de funcao JS
def\s+\w+\(
Funcoes Python
class\s+[A-Z]\w+
Classes (CamelCase)
TODO|FIXME|HACK
Comentarios de tarefas
import.*from
Imports ES6
⚠️ Cuidado com Caracteres Especiais
Para buscar literalmente {} ou outros caracteres
especiais de regex, escape com \:
interface\{\}
🔄 Glob + Grep: Workflow Combinado
Combine Glob e Grep para navegacao eficiente: Glob encontra arquivos, Grep encontra conteudo.
Descobrir estrutura
Glob(pattern="**/*.py", path="/projeto")
Encontra todos os arquivos Python
Localizar funcao especifica
Grep(pattern="def process_data", type="py")
Encontra onde a funcao esta definida
Ler contexto
Read(file_path="/projeto/src/processing.py", offset=45, limit=30)
Le apenas o trecho relevante
💡 Economia de Contexto
Este workflow usa minimo contexto: Glob e Grep retornam apenas metadados, e Read le apenas o trecho necessario. Muito mais eficiente que ler arquivos inteiros.
⚡ Otimizacao e Limites
Para codebases grandes, use os parametros de otimizacao para limitar resultados e acelerar buscas.
Parametros de Limite
-
•
head_limit- Limita primeiros N resultados -
•
offset- Pula primeiros N resultados -
•
type- Filtra por tipo de arquivo -
•
glob- Filtra por padrao de nome
Exemplo Otimizado
Grep( pattern="async function", path="/projeto/src", type="ts", output_mode="files_with_matches", head_limit=10 )
Retorna max 10 arquivos TS com funcoes async
📊 Multiline Mode
Para padroes que cruzam linhas, use multiline: true:
Grep( pattern="struct \\{[\\s\\S]*?field", multiline=true )
📋 Resumo do Modulo
Proximo Modulo:
2.4 - Bash: Execucao de Comandos do Sistema - rode qualquer comando no terminal