Введение
Протокол сервера языка (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 из нескольких источников со следующим приоритетом (от самого высокого к наименьшему):
-
**Project конфигурация**: `.github/lsp.json` в текущем репозитории. -
**Конфигурации плагинов**: языковые серверы, предоставляемые установленными плагинами. -
**Пользовательская конфигурация**: `~/.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)