Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

Добавление серверов LSP для GitHub Copilot CLI

Вы можете добавить LSP-серверы для обеспечения Второй пилот CLI точного интеллекта кода, улучшая их способность ориентироваться по определениям, находить ссылки и переименовывать символы.

Введение

В этой статье объясняется, как добавить LSP-серверы для Второй пилот CLI. Для получения концептуальной информации о серверах LSP см. AUTOTITLE.

Добавление LSP-сервера для Второй пилот CLI — это двухэтапный процесс:

  1. Установите программное обеспечение LSP-сервера на ваш локальный компьютер.
  2. Настройте сервер в конфигурационном файле.

Эти шаги подробно описаны в данной статье.

Установка и настройка LSP-сервера

Вы можете добавить LSP-сервер для определённого языка, следующим образом:

  • Использование lsp-setup навыка, который автоматизирует процесс.
  • Ручная установка серверного программного обеспечения и настройка Второй пилот CLI для использования сервера.

Эти два подхода описаны в разделах ниже.

Использование lsp-setup навыка для добавления языкового сервера

Навык lsp-setup из репозитория «Awesome 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. Начните Второй пилот CLI, или, если вы сейчас участвуете в сессии CLI, введите /skills reload.

  6. Введите запрос:

    Copilot prompt
    setup lsp
    
  7. Следуйте инструкциям на экране, чтобы выбрать язык для нужного сервера, затем выполните дополнительные шаги.

  8. Когда процесс завершён, введите, /lsp reload чтобы загрузить новый сервер LSP.

  9. Проверьте, был ли сервер добавлен и работает корректно. См. раздел «Подтверждение доступности LSP-сервера » позже в этой статье.

Ручная установка и настройка LSP-сервера

Установка LSP-сервера для определённого языка обычно включает установку пакета через менеджер пакетов, такой npmкак , gem, или pip.

Чтобы вручную установить LSP-сервер, обратитесь к документации по конкретному языковому серверу, который хотите установить. Ниже приведены примеры команд для установки популярных серверов LSP.

Примечание.

Полезные ресурсы для поиска LSP-серверов для разных языков включают: * Implementations на сайте Майкрософт Language Server Protocol. * Протокол Language Server на сайте Arch Linux.

Внимание

Устанавливайте LSP-серверы только с тех источников, которым доверяете.

Пример команды установки: TypeScript и JavaScript

Если у вас установлен Node.js, вы можете установить typescript-language-server LSP-сервер с помощью следующей команды:

Bash
npm install -g typescript typescript-language-server
          `typescript-language-server` LSP-сервер поддерживает как TypeScript, так и JavaScript.

Пример команды установки: Ruby

Если у вас установлен Gem, вы можете установить ruby-lsp LSP-сервер с помощью следующей команды:

Bash
gem install ruby-lsp

В качестве альтернативы можно установить solargraph LSP-сервер для Ruby с помощью:

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-сервера ».

Поля конфигурации

Каждое определение сервера в конфигурационном файле должно иметь уникальное имя и содержать только буквенно-цифровые символы, подчеркнуть и дефисы.

В каждом определении сервера доступны/обязательны следующие поля:

Поле Обязательный Описание
command Да Команда, используемая для запуска сервера LSP.
args Нет Аргументы для передачи командованию.
fileExtensions Да JSON-карта расширений файлов и их соответствующий языковой идентификатор (например, { ".rs": "rust" }).
env Нет Переменные среды для установки при запуске сервера. Поддержка ${VAR} и ${VAR:-default} синтаксис расширений.
rootUri Нет Корневой каталог сервера LSP, относительно корня Git. По умолчанию — ".". Полезно для монорепо. Если ваш проект находится в подкаталоге репозитория Git, а не в корне репозитория, установите rootUri путь к этому подкаталогу.
initializationOptions Нет Пользовательские опции отправляются на сервер при запуске.
requestTimeoutMs Нет Тайм-аут для серверных запросов составляет миллисекунды (по умолчанию: 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"
      }
    }
  }
}

Пример определения сервера: pyright LSP-сервер для Python

JSON
{
  "lspServers": {
    "python": {
      "command": "pyright-langserver",
      "args": ["--stdio"],
      "fileExtensions": {
        ".py": "python",
        ".pyw": "python",
        ".pyi": "python"
      }
    }
  }
}

Управление языковыми серверами с /lsp помощью команды

Вы можете перечислить и управлять своими LSP-серверами в интерактивной CLI-сессии с помощью /lsp команды слэш:

Команда SlashОписание
/lsp или /lsp showПокажите статус всех настроенных серверов LSP.
/lsp test SERVER-NAMEПроверьте, правильно ли сервер запускается.
/lsp reloadПерезагрузите конфигурации LSP с диска.
/lsp helpПокажите /lsp командную информацию.

Список доступных серверов LSP

  1. В Второй пилот CLI, проверьте, что выбранный вами LSP-сервер доступен с помощью /lsp команды slash. Вы увидите такие выводы, как:

    ● 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. Используйте команду slash: /lsp test SERVER-NAME чтобы проверить, работает ли сервер LSP корректно.

           Второй пилот CLI попытки запустить временный, автономный экземпляр сервера и сообщает, был ли он успешным или были ли ошибки. В итоге временный серверный процесс останавливается.
    

Дополнительные материалы