Skip to main content

GitHub Copilot 명령 줄 인터페이스 (CLI)에 대한 LSP 서버 추가

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

소개

이 문서에서는 코파일럿 CLI에 대한 LSP 서버를 추가하는 방법을 설명합니다. LSP 서버에 대한 개념 정보는 LSP 서버를 GitHub Copilot 명령 줄 인터페이스 (CLI) 와 함께 사용을 참조하세요.

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

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

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

LSP 서버 설치 및 구성

다음 중 하나를 사용하여 특정 언어에 대한 LSP 서버를 추가할 수 있습니다.

  • lsp-setup 프로세스를 자동화하는 기술을 사용하세요.
  • 서버 소프트웨어를 수동으로 설치하고 나서 코파일럿 CLI을(를) 서버로 사용하도록 구성합니다.

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

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

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

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

https://awesome-copilot.github.com/skills/?q=lsp;

  1. lsp-setup 기능을 다운로드합니다.

  2. 다운로드한 .zip 파일의 압축을 풀고 라는 lsp-setup디렉터리를 만듭니다.

  3. lsp-setup 디렉터리를 다음 중 하나로 이동합니다.

    • 개인 기술 디렉터리: ~/.copilot/skills/.
    • 프로젝트 기술 디렉터리: .github/skills/ Git 리포지토리 안에서
  4. 시작 코파일럿 CLI하거나, 현재 CLI 세션에 있는 경우에는 /skills reload을 입력합니다.

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

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

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

  8. 서버가 추가되었으며 제대로 작동하는지 확인합니다. 이 문서의 뒷 부분에서 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. 서버를 설치하고 구성한 후 서버를 사용할 수 있는지 코파일럿 CLI 확인합니다. 아래에서 LSP 서버를 사용할 수 있는지 확인하세요.

구성 필드

구성 파일의 각 서버 정의에는 고유한 이름이 있어야 하며 영숫자 문자, 밑줄 및 하이픈만 포함되어야 합니다.

각 서버 정의 내에서 다음 필드를 사용할 수/필수입니다.

분야필수설명
commandLSP 서버를 시작하는 데 사용되는 명령입니다.
argsNo명령에 전달할 인수입니다.
fileExtensions파일 확장명과 해당 언어 ID(예 { ".rs": "rust" }: )의 JSON 맵입니다.
envNo서버를 시작할 때 설정할 환경 변수입니다. ${VAR}${VAR:-default} 확장 구문을 지원합니다.
rootUriNoGit 루트를 기준으로 하는 LSP 서버의 루트 디렉터리입니다. 기본값은 "."입니다. 모노레포에 유용합니다. 프로젝트가 리포지토리 루트가 아닌 Git 리포지토리의 하위 디렉터리에 있는 경우 해당 하위 디렉터리 경로로 설정합니다 rootUri .
initializationOptionsNo시작하는 동안 서버로 전송되는 사용자 지정 옵션입니다.
requestTimeoutMsNo서버 요청에 대한 시간 제한(밀리초)(기본값: 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. 코파일럿 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 서버를 추가하고 구성한 후 시작(또는 다시 시작) 코파일럿 CLI합니다.

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

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

추가 읽기