읽기와 이해

파일 찾기, 심볼 따라가기 및 소스 참조 확인

파일로 이동, 모든 파일 검색 및 언어 서버 탐색을 언제 사용하고 결과가 없을 때 무엇을 확인해야 하는지 알아보세요.

대략적인 위치를 알면 파일로 이동, 내용을 알면 모든 파일 검색, 심볼을 따라가려면 언어 서버 탐색을 사용하세요. 넓은 검색 하나를 계속 다듬기보다 세 가지를 오가는 편이 보통 더 빠릅니다.

적절한 검색 선택

알고 있는 것 사용할 기능 예시
파일 이름 또는 경로 일부 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에 두어야 합니다. 지원 기능은 서버마다 다르며 프로젝트에 추가 설정이 필요할 수 있습니다.

분명히 있는 심볼이 나오지 않으면 프로젝트 루트를 열었는지, 서버가 설치되었는지, 의존성과 빌드 구성이 준비되었는지 확인하세요. 구문 강조는 언어 서버 없이도 작동합니다.

서버가 없어도 텍스트 검색을 활용할 수 있습니다. 선언과 사용처를 검색하고 유형과 import로 이름이 같은 심볼을 구분하세요.

현재 위치를 유지하며 동작 따라가기

다른 곳의 정의로 이동하는 동안 시작한 파일은 탭에 열어 두세요. 중요한 호출마다 입력과 다음 경로를 결정하는 설정, 유형, 레지스트리 키 또는 현재 상태를 적으세요.

참조 찾기는 실행 추적이 아니라 언어 서버가 보고한 사용처입니다. 서버 지원, 프로젝트 설정 및 결과 한도 때문에 불완전할 수 있습니다. 레지스트리에 로컬과 원격 구현이 있다면 선택하는 값을 찾으세요. 비동기 코드에서는 결과가 돌아오기 전에 무엇이 바뀔 수 있는지도 확인하세요.

설정 값에 대한 읽기 메모는 다음처럼 작성할 수 있습니다.

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

직접 확인한 단계에 파일과 줄 참조를 붙이세요. 설정 추적 예제에서 실행 가능한 테스트와 함께 전 과정을 볼 수 있습니다.

AI 소스 참조 확인

AI 답변의 소스 참조를 누르면 빠른 보기에서 인용된 줄이 열립니다. 코드 조각이 짧아 이해하기 어렵다면 파일 열기로 전체 파일을 탭에 여세요.

답변을 믿기 전에 주변 조건과 호출자를 읽으세요. 예를 들어 캐시 항목 삭제는 해당 항목이 여전히 같은 요청에 속할 때만 안전할 수 있습니다. 참조는 확인할 곳을 알려주며 주장의 타당성은 주변 코드에서 확인해야 합니다.

문서와 이전 버전

Markdown 파일은 읽기 모드로 열리며 소스 편집으로 전환할 수 있습니다. 구현 옆에 README나 테스트를 열고 서로 다른 부분을 적어 두세요.

Git 기록의 파일과 현재 파일을 나란히 열 수 있습니다. 참조를 따라가거나 편집하기 전에 탭의 버전을 확인하세요. 이전 커밋의 설명이 현재 작업 트리와 맞지 않을 수 있습니다. 버전 선택 방법은 커밋과 브랜치 비교에서 설명합니다.