Gopls: Список функций

Эта страница предоставляет список всех поддерживаемых функций gopls, доступных через языковой протокол сервера (LSP). Она предназначена для:

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

В идеальном мире пользователи Go не должны знать, что существует gopls или даже LSP, поскольку их редакторы с поддержкой LSP реализуют все аспекты протокола и предоставляют каждую функцию естественным и интуитивно понятным способом. На практике редакторы различаются по уровню поддержки LSP, поэтому, к сожалению, эти документы включают множество деталей протокола.

Мы также перечисляем настройки, влияющие на каждую функцию.

Большинство функций иллюстрируются на примере VS Code, но мы кратко упомянем, поддерживаются ли они в других популярных клиентах и, если да, как их найти. Мы приветствуем вклад, правки и обновления от пользователей любого редактора.

Участники должны обновлять эту документацию, когда вносят значительные изменения в существующие функции или добавляют новые.

  • Пассивные: функции, которые всегда включены и не требуют специальных действий
    • Hover: информация о символе под курсором
    • Signature Help: информация о типе содержащего вызова функции
    • Document Highlight: выделение идентификаторов, ссылающихся на тот же символ
    • Inlay Hint: отображение неявных имён полей структур и параметров
    • Semantic Tokens: отчёт о синтаксической информации, используемой редакторами для окрашивания текста
    • Folding Range: отчёт о текстовых регионах, которые можно «свернуть» (развернуть/свернуть) в редакторе
    • Document Link: извлечение URL из комментариев к документации и строк в текущем файле, чтобы клиент мог их обработать
  • Диагностика: ошибки компиляции и результаты статического анализа
  • Навигация: навигация по перекрёстным ссылкам, типам и символам
    • Definition: переход к определению выбранного символа
    • Type Definition: переход к определению типа выбранного символа
    • References: список ссылок на выбранный символ
    • Implementation: показ отношений «реализует» для выбранного типа
    • Document Symbol: структура символов, определённых в текущем файле
    • Symbol: нечёткий поиск символа по имени
    • Selection Range: выбор содержащей единицы синтаксиса
    • Call Hierarchy: показ исходящих/входящих вызовов текущей функции
    • Type Hierarchy: показ интерфейсов/реализаций текущего типа
  • Дополнение: контекстно-зависимое дополнение идентификаторов и инструкций
  • Преобразование кода: исправления и рефакторинг
    • Formatting: форматирование исходного кода
    • Rename: переименование символа или пакета
    • Organize imports: организация декларации импортов
    • Extract: извлечение выделенного фрагмента в новый файл/функцию/переменную
    • Inline: встраивание вызова функции или метода
    • Miscellaneous rewrites: различные специфичные для Go рефакторинги
    • Add test for func: создание теста для выбранной функции
  • Веб-запросы: команды, открывающие страницу в браузере
    • Package documentation: просмотр документации текущего Go пакета
    • Free symbols: показ символов, используемых выбранным блоком кода
    • Assembly: показ списка ассемблерного кода для выбранной функции
    • Split package: разделение пакета на две или более компоненты
  • Поддержка файлов, не являющихся Go:
  • Командная строка: CLI для отладки и скриптинга (нестабильный)
  • Model Context Protocol: использование некоторых функций в средах с поддержкой ИИ

Достичь эту страницу можно из редактора, выполнив код-действие gopls.doc.features, которое откроет её в веб-браузере. В VS Code данная страница доступна в меню «Быстрое решение».


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

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

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