소개
LSP(Language Server Protocol)는 코드 편집기와 언어 서버 간의 통신에 사용되는 개방형 표준입니다. 언어 서버는 go-to-definition 및 코드베이스에서 코드 기호 이름 바꾸기와 같은 언어별 기능을 제공하는 프로세스입니다. "LSP 서버"는 언어 서버 프로토콜을 지원하는 모든 언어 서버입니다.
GitHub Copilot 명령 줄 인터페이스 (CLI) 는 LSP 서버를 사용하여 코드의 구조를 보다 정확하게 이해할 수 있습니다. 프로젝트의 코파일럿 CLI 각 프로그래밍 언어에 대한 LSP 서버를 추가하고 구성하면 코드를 더 잘 이해할 수 있습니다.
LSP 서버의 이점
- 정확도: 결과는 언어 고유의 컴파일러/분석기에서 제공되며 코드의 구조를 이해합니다. Copilot이(가) 귀하의 코드와 함께 작동할 때 정밀도가 향상됩니다. 예를 들어 Copilot에서 "정의로 이동"을 사용할 수 있는 경우, 유사한 텍스트 일치가 아니라 실제 정의를 찾습니다.
- 토큰 효율성: "모든 기호 나열" 또는 "참조 찾기"와 같은 작업은 에이전트가 전체 파일을 대화로 읽도록 요구하는 대신 압축 구조화된 결과를 반환합니다.
- 안전한 리팩터링: 기호 이름을 바꾸면 LSP 서버가 프로젝트 전체의 모든 참조를 안정적으로 업데이트합니다.
- 속도: 언어 서버는 프로젝트를 백그라운드에서 인덱싱하여 거의 즉각적인 응답을 허용합니다.
LSP 서버가 코파일럿 CLI에 허용하는 작업
LSP 서버를 사용할 수 있는 코파일럿 CLI 경우 자동으로 사용합니다. 명시적으로 요청할 필요가 없습니다. 코파일럿 CLI 는 사용 중인 프로그래밍 언어에 대한 LSP 서버에 액세스할 수 있을 때마다 텍스트 기반 검색 대신 LSP 서버를 사용합니다.
지원되는 언어 서버 작업은 다음과 같습니다.
| Operation | 용도 |
|---|---|
| 정의로 이동 | 기호(함수, 클래스, 변수)가 정의된 위치로 이동합니다. |
| 참조 찾기 | 기호가 사용되는 모든 위치를 찾습니다. |
| 호버 | 기호에 대한 형식 정보 및 설명서를 검색합니다. |
| 이름 바꾸기 | 모든 참조를 업데이트하여 전체 프로젝트에서 기호 이름을 바꿉니다. |
| 문서 기호 | 파일에 정의된 모든 기호를 나열합니다. |
| 작업 영역 기호 검색 | 프로젝트 전체에서 이름으로 기호를 검색합니다. |
| 구현으로 이동 | 인터페이스 또는 추상 메서드의 구현을 찾습니다. |
| 수신 전화 | 지정된 함수를 호출하는 함수를 보여 줍니다. |
| 발신 전화 | 지정된 함수가 호출하는 함수를 보여 줍니다. |
Copilot 는 프롬프트에 따라 가장 적절한 LSP 작업을 선택합니다. 예를 들어 " `handlePayment` 은(는) 어디에서 정의되나요?"라고 묻는 경우, Copilot는 go-to-definition 작업을 사용합니다.
LSP 서버를 추가하는 방법
코파일럿 CLI LSP 서버를 사용하려면 먼저 로컬 컴퓨터에 서버 소프트웨어를 설치한 다음 시작 시 읽는 구성 파일 코파일럿 CLI 중 하나에서 구성해야 합니다.
[AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)을(를) 참조하세요.
설치하도록 선택한 CLI 플러그 인의 일부로 LSP 서버를 추가할 수도 있습니다. 예를 들어 일반적이지 않은 프로그래밍 언어 또는 프레임워크별 파일 형식으로 작동하도록 설계된 경우 플러그 인에는 LSP 서버가 포함될 수 있습니다. 플러그 인의 일부로 포함된 LSP 서버는 플러그 인을 설치할 때 자동으로 사용할 수 있습니다. 추가 구성이 필요하지 않습니다. 플러그 인을 제거하면 LSP 서버가 제거됩니다. 자세한 내용은 플러그인에 대한 정보 GitHub Copilot 명령 줄 인터페이스 (CLI)을(를) 참조하세요.
LSP 서버 로드 방법
GitHub Copilot 명령 줄 인터페이스 (CLI) 시작되면 다음 우선 순위(가장 높음에서 가장 낮은 값)를 사용하여 여러 원본에서 LSP 서버 구성을 로드합니다.
1.
프로젝트 설정: 현재 리포지토리의 .github/lsp.json.
1.
플러그 인 구성: 설치된 플러그 인에서 제공하는 언어 서버입니다.
1.
사용자 구성: ~/.copilot/lsp-config.json.
우선 순위가 높은 구성은 동일한 서버 이름으로 우선 순위가 낮은 구성을 우선합니다. 즉, 프로젝트는 모든 참가자에 대해 언어 서버를 사용자 지정하거나 사용하지 않도록 설정할 수 있습니다.
작업 디렉터리가 신뢰할 수 코파일럿 CLI 있게 되면 프로젝트와 관련된 모든 LSP 서버를 백그라운드에서 자동으로 시작하므로 필요할 때 즉시 응답할 준비가 됩니다.
다음 단계
추가 읽기
- Microsoft 웹 사이트의 언어 서버 프로토콜
- GitHub Copilot CLI 명령 참조