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:
- Файлы шаблонов: файлы, разбираемые
text/templateиhtml/template - go.mod и go.work файлы: манифесты Go модулей и рабочих пространств
- Go *.s ассемблерные файлы: ассемблерные файлы Go
- Файлы шаблонов: файлы, разбираемые
- Командная строка: CLI для отладки и скриптинга (нестабильный)
- Model Context Protocol: использование некоторых функций в средах с поддержкой ИИ
Достичь эту страницу можно из редактора, выполнив код-действие gopls.doc.features, которое откроет её в веб-браузере.
В VS Code данная страница доступна в меню «Быстрое решение».
Исходные файлы этой документации находятся в каталоге golang.org/x/tools/gopls/doc.