Skip to main content

Использование LSP-серверов с GitHub Copilot CLI

LSP-серверы обеспечивают Copilot CLI точный анализ кода, позволяя им ориентироваться по определениям, находить ссылки и точно переименовывать символы в вашем проекте.

Введение

Протокол сервера языка (LSP) — это открытый стандарт, используемый для связи между редактором кода и языковым сервером. Языковой сервер — это процесс, который предоставляет специфические для языка функции, такие как go-to-definition и переименование кодового символа в вашей кодовой базе. «LSP-сервер» — это любой языковой сервер, поддерживающий протокол языкового сервера.

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

Преимущества LSP-серверов

  •         **Точность**: результаты поступают из собственного компилятора/анализатора языка, который позволяет понять структуру вашего кода. Это повышает Copilotточность , когда он работает с вашим кодом. Например, когда Copilot можно использовать «перейти к определению», оно найдёт само определение, а не похожее совпадение текста.
    
  •         **Эффективность токенов**: Операции вроде «перечислить все символы» или «найти ссылки» возвращают компактные структурированные результаты вместо того, чтобы агент читал целые файлы в разговоре.
    
  •         **Безопасный рефакторинг**: При переименовании символа LSP-сервер надёжно обновляет все ссылки на проекте.
    
  •         **Скорость**: Языковые серверы индексируют ваш проект в фоне, позволяя получать почти мгновенные ответы.
    

Что позволяют LSP-серверы Copilot CLI

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

Поддерживаются следующие операции на сервере языка:

ОперацияЧто делает
Перейти к определениюПереходит к месту, где определен символ (функция, класс, переменная).
Найти ссылкиНаходит все места, где используется символ.
Навести курсорПолучает информацию о типах и документацию по символу.
RenameПереименование символа во всём проекте, обновление всех ссылок.
Символы документаПеречисляет все символы, определённые в файле.
Поиск символов в рабочем пространствеИщет символы по названию по всему проекту.
Перейти к реализацииНаходит реализации интерфейса или абстрактного метода.
Входящие вызовыПоказывает, какие функции вызывают заданную функцию.
Исходящие звонкиПоказывает, какие функции вызывает заданная функция.
          Copilot выбирает наиболее подходящую операцию LSP на основе вашего запроса. Например, если спросить «где определено `handlePayment` ?», Copilot буду использовать операцию go-to-definition.

Как добавить LSP-сервер

Чтобы Copilot CLI использовать LSP-сервер, сначала нужно установить серверное программное обеспечение на вашем локальном компьютере, а затем настроить его в одном из конфигурационных файлов, который Copilot CLI читается при запуске. См . раздел AUTOTITLE.

LSP-сервер также может быть добавлен в состав CLI-плагина, который вы выберете для установки. Плагин может включать LSP-сервер, если, например, он предназначен для работы с редким языком программирования или специфическим для фреймворка типом файла. LSP-серверы, входящие в состав плагина, автоматически доступны при установке плагина — дополнительная настройка не требуется. Если удалять плагин, LSP-сервер удаляется. Дополнительные сведения см. в разделе О плагинах для GitHub Copilot CLI.

Как загружаются LSP-серверы

При GitHub Copilot CLI запуске он загружает конфигурации сервера LSP из нескольких источников со следующим приоритетом (от самого высокого к наименьшему):

  1.        **Project конфигурация**: `.github/lsp.json` в текущем репозитории.
    
  2.        **Конфигурации плагинов**: языковые серверы, предоставляемые установленными плагинами.
    
  3.        **Пользовательская конфигурация**: `~/.copilot/lsp-config.json`.
    

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

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

Дальнейшие действия

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)
    

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

  •         [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) на сайте Майкрософт
    
  •         [AUTOTITLE](/copilot/reference/cli-command-reference)