Skip to main content

GitHub Copilot CLI에 대한 LSP 서버 추가

LSP 서버를 추가하여 정확한 코드 인텔리전스를 제공하여 Copilot CLI 정의를 탐색하고 참조를 찾고 기호 이름을 바꾸는 기능을 향상시킬 수 있습니다.

소개

이 문서에서는 Copilot CLI에 대한 LSP 서버를 추가하는 방법을 설명합니다. LSP 서버에 대한 개념 정보는 LSP 서버를 GitHub Copilot CLI 와 함께 사용을 참조하세요.

LSP 서버를 Copilot CLI 추가하는 것은 2단계 프로세스입니다.

  1. 로컬 컴퓨터에 LSP 서버 소프트웨어를 설치합니다.
  2. 구성 파일에서 서버를 구성합니다.

이러한 단계에 대해서는 이 문서에서 자세히 설명합니다.

LSP 서버 설치 및 구성

다음 중 하나를 사용하여 특정 언어에 대한 LSP 서버를 추가할 수 있습니다. * lsp-setup 프로세스를 자동화하는 기술을 사용하세요.

  • 서버 소프트웨어를 수동으로 설치하고 나서 Copilot CLI을(를) 서버로 사용하도록 구성합니다.

이러한 두 가지 방법은 아래 섹션에 설명되어 있습니다.

기술을 lsp-setup 사용하여 언어 서버 추가

"Awesome lsp-setup" 리포지토리의 GitHub Copilot 스킬은 인기 있는 언어의 설치 및 구성을 자동화합니다.

  1. "Awesome GitHub Copilot" 다운로드 사이트로 이동하여 "lsp"를 검색합니다.

           https://awesome-copilot.github.com/skills/?q=lsp;
    
  2.        `lsp-setup` 기능을 다운로드합니다.
    
  3. 다운로드한 .zip 파일의 압축을 풀고 라는 lsp-setup디렉터리를 만듭니다.

  4.        `lsp-setup` 디렉터리를 다음 중 하나로 이동합니다.
    
    • 개인 기술 디렉터리: ~/.copilot/skills/.
    • 프로젝트 기술 디렉터리: .github/skills/ Git 리포지토리 안에서
  5. 시작 Copilot CLI하거나, 현재 CLI 세션에 있는 경우에는 /skills reload을 입력합니다.

  6. 프롬프트를 입력합니다.

    Copilot prompt
    setup lsp
    
  7. 화면의 지침에 따라 설정하려는 서버의 언어를 선택한 다음 추가 단계를 완료합니다.

  8. 새 LSP 서버를 로드하려면 프로세스가 완료된 후 /lsp reload을(를) 입력하십시오.

  9. 서버가 추가되었으며 제대로 작동하는지 확인합니다. 이 문서의 뒷 부분에서 LSP 서버를 사용할 수 있는지 확인 하세요.

LSP 서버 수동 설치 및 구성

특정 언어에 대한 LSP 서버를 설치하려면 일반적으로 패키지 관리자(예: npm``gem``pip또는 )를 통해 패키지를 설치해야 합니다.

LSP 서버를 수동으로 설치하려면 설치하려는 특정 언어 서버에 대한 설명서를 참조하세요. 다음은 인기 있는 LSP 서버를 설치하기 위한 몇 가지 예제 명령입니다.

참고

다양한 언어에 대한 LSP 서버를 찾는 데 유용한 리소스는 다음과 같습니다.

주의

신뢰할 수 있는 원본에서만 LSP 서버를 설치합니다.

설치 명령 예제: TypeScript 및 JavaScript

Node.js 설치한 경우 다음 명령을 사용하여 typescript-language-server LSP 서버를 설치할 수 있습니다.

Bash
npm install -g typescript typescript-language-server

LSP 서버는 typescript-language-server TypeScript와 JavaScript를 모두 지원합니다.

설치 명령 예제: Ruby

gem을 설치한 경우 다음 명령을 사용하여 ruby-lsp LSP 서버를 설치할 수 있습니다.

Bash
gem install ruby-lsp

대안적으로 solargraph를 사용하여 Ruby용 LSP 서버를 설치할 수 있습니다.

Bash
gem install solargraph

설치 명령 예제: Python

Node.js 설치한 경우 다음 명령을 사용하여 pyright LSP 서버를 설치할 수 있습니다.

Bash
npm install -g pyright

또는 pip를 설치했다면 python-lsp-server를 사용하여 LSP 서버를 설치할 수 있습니다.

Bash
pip install python-lsp-server

언어 서버 구성

  1. 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 서버에 대한 서버 정의의 몇 가지 예는 이 문서의 뒷부분에서 제공합니다.

  2. 서버를 설치하고 구성한 후 서버를 사용할 수 있는지 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 서버

JSON
{
  "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 서버

JSON
{
  "lspServers": {
    "ruby": {
      "command": "ruby-lsp",
      "args": [],
      "fileExtensions": {
        ".rb": "ruby",
        ".rbw": "ruby",
        ".rake": "ruby",
        ".gemspec": "ruby"
      }
    }
  }
}

서버 정의 예제: Python pyright LSP 서버

JSON
{
  "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 서버 나열

  1.        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 서버를 사용할 수 있는지 확인

  1. LSP 서버를 추가하고 구성한 후 시작(또는 다시 시작) Copilot CLI합니다.

  2. 슬래시 명령을 /lsp test SERVER-NAME 사용하여 LSP 서버가 제대로 작동하는지 확인합니다.

           Copilot CLI 는 서버의 임시 독립 실행형 인스턴스를 시작하려고 시도하고 서버의 성공 여부 또는 오류가 있는지 여부를 보고합니다. 그런 다음 임시 서버 프로세스를 종료합니다.
    

추가 읽기

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli)
    
  •         [AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli)