소개
이 문서에서는 Copilot CLI에 대한 LSP 서버를 추가하는 방법을 설명합니다. LSP 서버에 대한 개념 정보는 LSP 서버를 GitHub Copilot CLI 와 함께 사용을 참조하세요.
LSP 서버를 Copilot CLI 추가하는 것은 2단계 프로세스입니다.
- 로컬 컴퓨터에 LSP 서버 소프트웨어를 설치합니다.
- 구성 파일에서 서버를 구성합니다.
이러한 단계에 대해서는 이 문서에서 자세히 설명합니다.
LSP 서버 설치 및 구성
다음 중 하나를 사용하여 특정 언어에 대한 LSP 서버를 추가할 수 있습니다.
*
lsp-setup 프로세스를 자동화하는 기술을 사용하세요.
- 서버 소프트웨어를 수동으로 설치하고 나서 Copilot CLI을(를) 서버로 사용하도록 구성합니다.
이러한 두 가지 방법은 아래 섹션에 설명되어 있습니다.
기술을 lsp-setup 사용하여 언어 서버 추가
"Awesome lsp-setup" 리포지토리의 GitHub Copilot 스킬은 인기 있는 언어의 설치 및 구성을 자동화합니다.
-
"Awesome GitHub Copilot" 다운로드 사이트로 이동하여 "lsp"를 검색합니다.
https://awesome-copilot.github.com/skills/?q=lsp; -
`lsp-setup` 기능을 다운로드합니다. -
다운로드한
.zip파일의 압축을 풀고 라는lsp-setup디렉터리를 만듭니다. -
`lsp-setup` 디렉터리를 다음 중 하나로 이동합니다.- 개인 기술 디렉터리:
~/.copilot/skills/. - 프로젝트 기술 디렉터리:
.github/skills/Git 리포지토리 안에서
- 개인 기술 디렉터리:
-
시작 Copilot CLI하거나, 현재 CLI 세션에 있는 경우에는
/skills reload을 입력합니다. -
프롬프트를 입력합니다.
Copilot prompt setup lsp
setup lsp -
화면의 지침에 따라 설정하려는 서버의 언어를 선택한 다음 추가 단계를 완료합니다.
-
새 LSP 서버를 로드하려면 프로세스가 완료된 후
/lsp reload을(를) 입력하십시오. -
서버가 추가되었으며 제대로 작동하는지 확인합니다. 이 문서의 뒷 부분에서 LSP 서버를 사용할 수 있는지 확인 하세요.
LSP 서버 수동 설치 및 구성
특정 언어에 대한 LSP 서버를 설치하려면 일반적으로 패키지 관리자(예: npm``gem``pip또는 )를 통해 패키지를 설치해야 합니다.
LSP 서버를 수동으로 설치하려면 설치하려는 특정 언어 서버에 대한 설명서를 참조하세요. 다음은 인기 있는 LSP 서버를 설치하기 위한 몇 가지 예제 명령입니다.
참고
다양한 언어에 대한 LSP 서버를 찾는 데 유용한 리소스는 다음과 같습니다.
- Microsoft 언어 서버 프로토콜 웹 사이트의 임플렉션.
- Arch Linux 웹 사이트의 언어 서버 프로토콜입니다.
주의
신뢰할 수 있는 원본에서만 LSP 서버를 설치합니다.
설치 명령 예제: TypeScript 및 JavaScript
Node.js 설치한 경우 다음 명령을 사용하여 typescript-language-server LSP 서버를 설치할 수 있습니다.
npm install -g typescript typescript-language-server
npm install -g typescript typescript-language-server
LSP 서버는 typescript-language-server TypeScript와 JavaScript를 모두 지원합니다.
설치 명령 예제: Ruby
gem을 설치한 경우 다음 명령을 사용하여 ruby-lsp LSP 서버를 설치할 수 있습니다.
gem install ruby-lsp
gem install ruby-lsp
대안적으로 solargraph를 사용하여 Ruby용 LSP 서버를 설치할 수 있습니다.
gem install solargraph
gem install solargraph
설치 명령 예제: Python
Node.js 설치한 경우 다음 명령을 사용하여 pyright LSP 서버를 설치할 수 있습니다.
npm install -g pyright
npm install -g pyright
또는 pip를 설치했다면 python-lsp-server를 사용하여 LSP 서버를 설치할 수 있습니다.
pip install python-lsp-server
pip install python-lsp-server
언어 서버 구성
-
LSP 서버를 구성하려면 다음 두 구성 파일 중 하나에 서버 정의를 추가합니다.
-
**사용자 구성**: `~/.copilot/lsp-config.json` 모든 프로젝트에 적용됩니다. -
**Project 구성**: 리포지토리의 `.github/lsp.json` 해당 project 작업하는 모든 사용자에게 적용됩니다.
두 파일 모두 동일한 JSON 구문을 사용합니다.
{ "lspServers": { "SERVER-NAME": { "command": "COMMAND", "args": ["ARG1", "ARG2"], "fileExtensions": { ".EXT": "LANGUAGE-ID" } }, "ANOTHER-SERVER": { ... } } }특정 LSP 서버에 대한 서버 정의의 몇 가지 예는 이 문서의 뒷부분에서 제공합니다.
-
-
서버를 설치하고 구성한 후 서버를 사용할 수 있는지 Copilot CLI 확인합니다. 아래에서 LSP 서버를 사용할 수 있는지 확인하세요.
구성 필드
구성 파일의 각 서버 정의에는 고유한 이름이 있어야 하며 영숫자 문자, 밑줄 및 하이픈만 포함되어야 합니다.
각 서버 정의 내에서 다음 필드를 사용할 수/필수입니다.
| 분야 | 필수 | 설명 |
|---|---|---|
command |
예 | LSP 서버를 시작하는 데 사용되는 명령입니다. |
args |
No | 명령에 전달할 인수입니다. |
fileExtensions |
예 | 파일 확장명과 해당 언어 ID(예 { ".rs": "rust" }: )의 JSON 맵입니다. |
env |
No | 서버를 시작할 때 설정할 환경 변수입니다.
${VAR} 및 ${VAR:-default} 확장 구문을 지원합니다. |
rootUri |
No | Git 루트를 기준으로 하는 LSP 서버의 루트 디렉터리입니다. 기본값은 "."입니다. 모노레포에 유용합니다. 프로젝트가 리포지토리 루트가 아닌 Git 리포지토리의 하위 디렉터리에 있는 경우 해당 하위 디렉터리 경로로 설정합니다 rootUri . |
initializationOptions |
No | 시작하는 동안 서버로 전송되는 사용자 지정 옵션입니다. |
requestTimeoutMs |
No | 서버 요청에 대한 시간 제한(밀리초)(기본값: 90초)입니다. |
서버 정의 예제: typescript-language-server LSP 서버
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact",
".mjs": "javascript",
".cjs": "javascript",
".mts": "typescript",
".cts": "typescript"
}
}
}
}
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact",
".mjs": "javascript",
".cjs": "javascript",
".mts": "typescript",
".cts": "typescript"
}
}
}
}
서버 정의 예제: ruby-lsp LSP 서버
{
"lspServers": {
"ruby": {
"command": "ruby-lsp",
"args": [],
"fileExtensions": {
".rb": "ruby",
".rbw": "ruby",
".rake": "ruby",
".gemspec": "ruby"
}
}
}
}
{
"lspServers": {
"ruby": {
"command": "ruby-lsp",
"args": [],
"fileExtensions": {
".rb": "ruby",
".rbw": "ruby",
".rake": "ruby",
".gemspec": "ruby"
}
}
}
}
서버 정의 예제: Python pyright LSP 서버
{
"lspServers": {
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"fileExtensions": {
".py": "python",
".pyw": "python",
".pyi": "python"
}
}
}
}
{
"lspServers": {
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"fileExtensions": {
".py": "python",
".pyw": "python",
".pyi": "python"
}
}
}
}
명령을 사용하여 언어 서버 /lsp 관리
슬래시 명령을 사용하여 /lsp 대화형 CLI 세션에서 LSP 서버를 나열하고 관리할 수 있습니다.
| 슬래시 커맨드 | 설명 |
|---|
`/lsp` 또는 `/lsp show` | 구성된 모든 LSP 서버의 상태를 표시합니다. |
| /lsp test SERVER-NAME | 서버가 올바르게 시작되는지 테스트합니다. |
| /lsp reload | 디스크에서 LSP 구성을 다시 로드합니다. |
| /lsp help |
/lsp 명령 정보를 표시합니다. |
사용 가능한 LSP 서버 나열
-
Copilot CLI에서 `/lsp` 슬래시 명령을 사용하여 선택한 LSP 서버를 사용할 수 있는지 확인합니다. 다음과 같은 출력이 표시됩니다.● LSP Server Status: User-configured servers: • ruby: ruby-lsp (.rb, .rbw, .rake, .gemspec) • omnisharp: omnisharp (.cs) User config: /Users/username/.copilot/lsp-config.json
LSP 서버를 사용할 수 있는지 확인
-
LSP 서버를 추가하고 구성한 후 시작(또는 다시 시작) Copilot CLI합니다.
-
슬래시 명령을
/lsp test SERVER-NAME사용하여 LSP 서버가 제대로 작동하는지 확인합니다.Copilot CLI 는 서버의 임시 독립 실행형 인스턴스를 시작하려고 시도하고 서버의 성공 여부 또는 오류가 있는지 여부를 보고합니다. 그런 다음 임시 서버 프로세스를 종료합니다.
추가 읽기
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)