Leitura e compreensão

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.