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 имеет собственный клиентский интерфейс для тестирования, а также потому, что уведомления о прогрессе не обеспечивают хорошего пользовательского опыта для потокового вывода тестов. См.:
- golang/go#67400 для обсуждения этой функции.
- https://github.com/joaotavora/eglot/discussions/1402 для альтернативного подхода.
По умолчанию: выключено
Тип файла: 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.