Encontre arquivos, siga símbolos e confira referências
Quando usar Go to File, Search All Files ou a navegação por servidor de linguagem, e o que conferir quando falta um resultado.
Use Go to File quando souber aproximadamente onde algo está, Search All Files quando souber o que está escrito e a navegação por servidor de linguagem para seguir um símbolo. Alternar entre os três costuma ser mais rápido do que refinar uma busca muito ampla.
Escolha a busca adequada
| O que você sabe | Use | Exemplo |
|---|---|---|
| Parte do nome ou caminho de um arquivo | Command-P (Go to File…) | SettingsStore ou src/config |
| Uma mensagem, configuração ou trecho de código | Search All Files na barra lateral | Uma mensagem de erro exata ou chave de configuração |
| Um símbolo em um arquivo aberto | Go to Definition, Find References | Implementação ou chamadores de uma função |
Go to File busca nomes e caminhos, não o conteúdo dos arquivos. Para encontrar uma mensagem de erro impressa pelo programa, use Search All Files e procure algo específico, em vez de palavras como data ou result.
Se faltar um arquivo ou resultado, confira primeiro a raiz do projeto e depois se os arquivos ocultos e ignorados pelo Git estão visíveis. Os padrões ficam em Settings → General → Files e valem para a barra lateral, Go to File e Search All Files. Cada espaço de trabalho pode sobrescrevê-los pela barra de status da lateral.
Rastreie uma mensagem de erro até a ramificação que a produziu
Uma mensagem de erro oferece um ponto de partida, mas a linha que a imprime pode apenas encapsular uma falha de outro lugar.
- Busque a parte fixa. Abra Search All Files pela lupa da barra lateral. Omita horários, IDs de requisição e caminhos inseridos durante a execução. Comece com Regex e Whole word desativados; se não souber a capitalização, escolha Ignore no menu Aa.
- Confira o escopo da busca. Abra Filters e limpe padrões antigos de pastas ou arquivos antes de ampliar a busca. Quando identificar o provável módulo, restrinja a pasta ou use um padrão como
*.rs. O rótulo Best matches indica uma lista incompleta: refine a busca antes de tirar conclusões sobre resultados ausentes. - Leia ao redor da ocorrência. Abra o resultado e encontre a condição que o alcança. A mensagem nasce ali ou é uma camada de captura/log que acrescenta contexto a outro erro? No segundo caso, siga a operação que falhou.
- Rastreie a entrada para trás. Siga os chamadores da função e o valor que seleciona a ramificação. Use Find References quando o servidor permitir, ou busque os nomes da função e da configuração e confira cada uso em contexto.
- Confira a explicação. Compare a entrada e a ramificação propostas com um teste específico existente ou um log da mesma versão do código. Registre o que isso confirma e o que ainda não foi verificado; encontrar a mensagem não basta para estabelecer a causa.
Search All Files busca no espaço de trabalho atual, incluindo texto não salvo em arquivos abertos. Não busca em todas as revisões Git. Se o erro veio de uma versão antiga, compare a versão relevante antes de usar o código atual como explicação.
Servidores de linguagem
Go to Definition, Find References, implementações e hierarquia de chamadas são fornecidos por um servidor de linguagem:
| Linguagem | Servidor |
|---|---|
| Swift | SourceKit-LSP |
| Rust | rust-analyzer |
| C, C++, Objective-C, Objective-C++ | clangd |
| Python | Pyright |
| JavaScript, JSX, TypeScript, TSX | TypeScript Language Server |
| Go | gopls |
O Yenpo pode instalar rust-analyzer em Settings → Code Navigation. SourceKit-LSP e clangd vêm da toolchain Xcode selecionada. Você precisa instalar Pyright, TypeScript Language Server e gopls e disponibilizá-los no PATH. Os recursos variam entre servidores, e alguns projetos exigem configuração adicional para a navegação funcionar.
Se um símbolo conhecido não retornar resultados, confira três coisas: se abriu a raiz do projeto, se o servidor está instalado e se as dependências e a configuração de build estão prontas. (O realce de sintaxe funciona mesmo sem servidor de linguagem.)
Sem servidor, a busca de texto ainda ajuda bastante. Procure a declaração e seus usos; use tipos e imports para distinguir símbolos com o mesmo nome.
Acompanhe um comportamento sem perder seu lugar
Mantenha o arquivo inicial em uma aba enquanto segue uma definição em outro lugar. Em cada chamada importante, anote a entrada e o que decide o próximo caminho: uma configuração, tipo, chave de registro ou estado atual.
Find References mostra usos relatados pelo servidor de linguagem, não um rastreamento da execução. O suporte do servidor, a configuração do projeto e os limites de resultados podem deixar a lista incompleta. Se um registro contém implementações local e remota, encontre o valor que escolhe uma delas. Em código assíncrono, confira também o que pode mudar antes de o resultado voltar.
Uma anotação de leitura de configuração pode ter este formato:
CLI input → config resolver → validation → request builder
Selected source: environment override
Failure: invalid value stops before request construction
Unverified: which parent process sets that environment variable
Adicione referências de arquivo e linha às etapas realmente conferidas. O passo a passo de configuração faz isso de ponta a ponta com testes executáveis.
Confira uma referência da IA ao código-fonte
Clicar em uma referência da resposta abre as linhas citadas em Quick Look. Se o trecho for curto demais para entender, clique em Open File para abrir o arquivo inteiro em uma aba.
Leia as condições ao redor e o chamador antes de confiar na resposta. Uma linha que exclui uma entrada de cache, por exemplo, pode só ser segura se a entrada ainda pertencer à mesma requisição. A referência mostra onde olhar; o código ao redor mostra se a afirmação se sustenta.
Documentação e versões antigas
Arquivos Markdown abrem em modo de leitura, com opção de editar o código-fonte. Ajuda manter um README ou teste ao lado da implementação e anotar divergências.
Arquivos do histórico Git podem ficar ao lado dos atuais. Antes de seguir uma referência ou editar, confira a versão exibida na aba: uma explicação de um commit antigo pode não corresponder à árvore de trabalho. Compare commits e branches explica como escolher as versões.