Copilot 채팅을 워크스페이스 전문가로 만들기
Copilot 채팅에서 @workspace
를 참조하면 전체 코드베이스에 대해 질문할 수 있습니다. 질문에 따라 Copilot은 관련 파일과 심볼을 지능적으로 검색하여 답변에 링크와 코드 예제로 참조합니다. @workspace
참조를 기반으로 Copilot 채팅은 다음과 같은 작업을 위한 도메인 전문가가 됩니다:
- 코드베이스에서 기존 코드 찾기:
"@workspace where is database connecting string configured?"
데이터베이스 연결이 어디서 어떻게 구성되는지 설명"@workspace how can I validate a date?"
코드베이스에서 기존 날짜 유효성 검사 도우미 찾기"@workspace where are tests defined?"
테스트 스위트, 케이스 및 관련 참조와 구성의 위치 제공
- 복잡한 코드 편집 계획 수립:
"@workspace how can I add a rich tooltip to a button?"
버튼 요소에 기존 툴팁 컴포넌트를 사용하는 계획 제공"@workspace add date validation to #selection"
기존 날짜 유효성 검사를 선택된 코드에 적용하는 방법 계획"@workspace add a new API route for the forgot password form"
새 라우트를 추가할 위치와 기존 코드에 연결하는 방법 설명
- 코드베이스의 상위 수준 개념 설명:
"@workspace how is authentication implemented?"
인증 흐름 개요 및 관련 코드 참조"@workspace which API routes depend on this service?"
선택된 코드에서 서비스를 사용하는 라우트 목록"How do I build this #codebase?"
문서, 스크립트 및 구성을 기반으로 프로젝트를 빌드하는 단계 나열
@workspace
는 어떤 소스를 컨텍스트로
사용하나요?
질문에 답하기 위해 @workspace
는 개발자가 VS Code에서 코드베이스를 탐색할 때 사용하는 것과 동일한 소스를 검색합니다:
.gitignore
파일에서 무시된 파일을 제외한 워크스페이스의 모든 파일- 중첩된 폴더 및 파일 이름이 포함된 디렉토리 구조
- 워크스페이스가 GitHub 저장소이고 코드 검색에 의해 인덱싱된 경우 GitHub의 코드 검색 인덱스
- 워크스페이스의 심볼과 정의
- 현재 선택된 텍스트 또는 활성 편집기에서 보이는 텍스트
무시된 파일 내에서 파일을 열거나 텍스트를 선택한 경우 .gitignore
는 무시됩니다.
@workspace
는 가장 관련성 높은 컨텍스트를
어떻게 찾나요
전체 VS Code 워크스페이스는 채팅 프롬프트에 응답하기 위해 GitHub Copilot에 전달하기에는 너무 클 수 있습니다. 대신, @workspace
는 다양한 컨텍스트 소스에서 가장 관련성 높은 정보를 추출하여 Copilot의 답변의 근거로 삼습니다.
먼저, @workspace
는 대화 기록, 워크스페이스 구조 및 현재 선택된 코드를 포함하여 질문에 답하는 데 필요한 정보를 결정합니다.
다음으로, 로컬 검색이나 GitHub의 코드 검색을 사용하여 관련 코드 스니펫을 찾고, VS Code의 언어 IntelliSense를 사용하여 함수 시그니처, 매개변수 등의 세부 정보를 추가하는 등 다양한 접근 방식을 사용하여 컨텍스트를 수집합니다.
마지막으로, 이 컨텍스트는 GitHub Copilot이 질문에 답하는 데 사용됩니다. 컨텍스트가 너무 큰 경우 가장 관련성 높은 부분만 사용됩니다. 응답은 파일, 파일 범위 및 심볼에 대한 참조로 표시됩니다. 이를 통해 채팅 응답에서 코드베이스의 해당 정보로 직접 연결할 수 있습니다. Copilot에 제공된 코드 스니펫은 응답에서 참조로 나열됩니다.