Чтение и понимание

Поиск файлов, переходы по символам и проверка ссылок на исходники

Когда использовать переход к файлу, поиск во всех файлах или навигацию языкового сервера и что проверять при отсутствии результата.

Используйте Перейти к файлу, если примерно знаете расположение, «Искать во всех файлах», если знаете текст, и навигацию языкового сервера для символов. Переключаться между этими способами обычно быстрее, чем уточнять один широкий поиск.

Выберите подходящий поиск

Что известно Инструмент Пример
Часть имени или пути файла Command-P (Перейти к файлу…) SettingsStore или src/config
Сообщение, настройка или фрагмент кода Искать во всех файлах в боковой панели Точное сообщение ошибки или ключ конфигурации
Символ в открытом файле Перейти к определению, Найти ссылки Реализация функции или вызывающий код

«Перейти к файлу» ищет имена и пути, а не содержимое. Для сообщения ошибки используйте «Искать во всех файлах» и ищите характерный текст вместо общих слов вроде data или result.

Если файл или результат отсутствует, сначала проверьте корень проекта, затем отображение скрытых и игнорируемых Git файлов. Значения по умолчанию в Настройки → Основные → Файлы действуют для боковой панели и обоих видов поиска. Каждая рабочая область может переопределить их в строке состояния боковой панели.

Проследите сообщение ошибки до породившей его ветки

Сообщение ошибки даёт отправную точку, но выводящая его строка может лишь оборачивать ошибку из другого места.

  1. Ищите постоянную часть. Откройте Искать во всех файлах через лупу боковой панели. Уберите время, ID запросов и пути, вставленные во время выполнения. Начните с отключённых Регулярное выражение и Слово целиком; если регистр неизвестен, выберите Игнорировать в меню Aa.
  2. Проверьте область поиска. Откройте Фильтры и удалите старые папки или шаблоны перед широким поиском. Найдя вероятный модуль, сузьте папку или задайте шаблон вроде *.rs. Метка Лучшие совпадения означает неполный список: уточните поиск, прежде чем делать выводы об отсутствующих совпадениях.
  3. Прочитайте окружение. Откройте результат и найдите условие его достижения. Сообщение создаётся здесь или слой catch/логирования добавляет контекст к другой ошибке? Во втором случае проследите неудавшуюся операцию.
  4. Проследите входные данные назад. Изучите вызовы окружающей функции и значение, выбирающее ветку. Используйте Найти ссылки, если сервер поддерживает это, или ищите имена функций и настроек и проверяйте каждое использование в контексте.
  5. Проверьте объяснение. Сопоставьте предполагаемые входные данные и ветку с целевым тестом или журналом выполнения той же версии кода. Запишите подтверждённое и непроверенное; нахождение сообщения само по себе не доказывает причину.

Искать во всех файлах охватывает текущую рабочую область, включая несохранённый текст открытых файлов, но не все ревизии Git. Если ошибка из старой сборки, сравните нужную версию, прежде чем объяснять её текущими исходниками.

Языковые серверы

Переход к определению, поиск ссылок, реализации и иерархия вызовов обеспечиваются языковым сервером:

Язык Сервер
Swift SourceKit-LSP
Rust rust-analyzer
C, C++, Objective-C, Objective-C++ clangd
Python Pyright
JavaScript, JSX, TypeScript, TSX TypeScript Language Server
Go gopls

Yenpo может установить rust-analyzer через Настройки → Навигация по коду. SourceKit-LSP и clangd берутся из выбранного набора инструментов Xcode. Pyright, TypeScript Language Server и gopls нужно установить самостоятельно и сделать доступными в PATH. Возможности различаются; некоторым проектам нужна дополнительная настройка.

Если известный символ не даёт результатов, проверьте три вещи: открыт ли корень проекта, установлен ли сервер и подготовлены ли зависимости и конфигурация сборки. Подсветка синтаксиса работает и без сервера.

Без сервера текстовый поиск всё ещё помогает. Ищите объявление и использования, затем различайте одноимённые символы по типам и импортам.

Прослеживайте поведение, не теряя исходное место

Держите исходный файл во вкладке, переходя к определениям в других местах. Для важных вызовов отмечайте входные данные и то, что выбирает следующий путь: настройку, тип, ключ реестра или текущее состояние.

«Найти ссылки» показывает использования, сообщённые сервером, а не трассу выполнения. Возможности сервера, настройка проекта и лимиты могут делать список неполным. Если реестр содержит локальную и удалённую реализации, найдите выбирающее значение. В асинхронном коде проверьте, что может измениться до получения результата.

Заметка о значении конфигурации может выглядеть так:

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

Добавьте ссылки на файлы и строки для действительно проверенных шагов. Разбор конфигурации показывает весь путь с запускаемыми тестами.

Проверьте ссылку ИИ на исходник

Нажатие ссылки в ответе ИИ открывает указанные строки в Быстром просмотре. Если фрагмента мало, нажмите Открыть файл, чтобы увидеть весь файл во вкладке.

Прочитайте окружающие условия и вызывающий код, прежде чем доверять ответу. Например, удаление записи кэша безопасно лишь пока она принадлежит тому же запросу. Ссылка показывает место, а окружающий код — верность утверждения.

Документация и старые версии

Markdown открывается в режиме чтения; можно перейти к редактированию исходника. Держите README или тест рядом с реализацией и отмечайте расхождения.

Файлы истории Git могут быть открыты рядом с текущими. Перед переходом по ссылке или правкой проверьте версию вкладки: объяснение старого коммита может не соответствовать рабочему дереву. Выбор версий описан в сравнении коммитов и веток.