Gopls: Линзы кода

«Линза кода» («code lens») — это команда, связанная с диапазоном в исходном файле. Руководство VS Code описывает линзы кода как «действие, контекстная информация, встроенная в исходный код». Операция LSP textDocument/codeLens запрашивает текущий набор линз кода для файла.

Gopls генерирует линзы кода из нескольких источников. В данном документе описаны они.

Их можно включить и отключить с помощью настройки codelenses. Их функциональность может быть изменена в будущем.

Поддержка клиентами:

  • VS Code: Линзы кода отображаются в виде небольших текстовых ссылок над строкой исходного кода.
  • Emacs + eglot: Не поддерживается, но прототип существует по адресу https://github.com/joaotavora/eglot/pull/71.
  • Vim + coc.nvim: ??
  • CLI: gopls codelens. Например, gopls codelens -exec file.go:123 "run test" запускает тест в указанной строке.

generate: Запуск go generate

Источник линз кода generate аннотирует любые комментарии //go:generate командой запуска go generate в данном каталоге, во всех каталогах, расположенных ниже этого каталога рекурсивно.

См. Генерация кода для дополнительных сведений.

По умолчанию: включено

Тип файла: Go

regenerate_cgo: Повторная генерация объявлений cgo

Источник линз кода regenerate_cgo аннотирует объявление import "C" командой для повторного запуска команды cgo для повторной генерации соответствующих объявлений на Go.

Используйте это после редактирования C-кода в комментариях, прикреплённых к декларации импорта, или в заголовочных файлах C, включённых в него.

По умолчанию: включено

Тип файла: Go

test: Запуск тестов и бенчмарков

Источник линз кода test аннотирует каждую функцию Test и Benchmark в файле *_test.go командой для её запуска.

Этот источник по умолчанию отключён, потому что VS Code имеет собственный клиентский интерфейс для тестирования, а также потому, что уведомления о прогрессе не обеспечивают хорошего пользовательского опыта для потокового вывода тестов. См.:

По умолчанию: выключено

Тип файла: Go

run_govulncheck: Запуск govulncheck (устаревший)

Эта настройка является экспериментальной и может быть удалена.

Этот источник codelens аннотирует директиву module в файле go.mod командой для асинхронного запуска Govulncheck.

Govulncheck — это инструмент статического анализа, который вычисляет множество функций, достижимых в пределах вашего приложения, включая зависимости; запрашивает базу данных известных уязвимостей в безопасности; и сообщает о любых потенциальных проблемах, которые он находит.

По умолчанию: выключено

Тип файла: go.mod

tidy: Привести go.mod в порядок

Этот источник codelens аннотирует директиву module в файле go.mod командой для запуска go mod tidy, которая гарантирует, что файл go.mod соответствует исходному коду в модуле.

По умолчанию: включено

Тип файла: go.mod

upgrade_dependency: Обновить зависимости

Этот источник codelens аннотирует директиву module в файле go.mod командами для:

По умолчанию: включено

Тип файла: go.mod

vendor: Обновить каталог vendor

Этот источник codelens аннотирует директиву module в файле go.mod командой для запуска go mod vendor, которая создаёт или обновляет каталог с именем vendor в корневом каталоге модуля так, чтобы он содержал актуальную копию всех необходимых зависимостей пакетов.

По умолчанию: включено

Тип файла: go.mod

vulncheck: Запуск govulncheck

Эта настройка является экспериментальной и может быть удалена.

Этот источник codelens аннотирует директиву module в файле go.mod командой для синхронного запуска govulncheck.

Govulncheck — это инструмент статического анализа, который вычисляет множество функций, достижимых в пределах вашего приложения, включая зависимости; запрашивает базу данных известных уязвимостей в безопасности; и сообщает о любых потенциальных проблемах, которые он находит.

По умолчанию: выключено

Тип файла: go.mod


Исходные файлы этой документации можно найти в golang.org/x/tools/gopls/doc.

GoRu.dev Golang на русском

На сайте представлена адаптированная под русский язык документация языка программирования Golang