Этот репозиторий предоставляет модуль golang.org/x/tools
, содержащий различные инструменты и пакеты, в основном для статического анализа программ Go, некоторые из которых перечислены ниже. Используйте ссылку «Go reference» выше для получения дополнительной информации о любом пакете.
Он также содержит модуль golang.org/x/tools/gopls
, корневой пакет которого представляет собой сервер протокола языкового сервера (LSP) для Go. Сервер LSP анализирует исходный код проекта и отвечает на запросы широкого спектра редакторов, таких как VSCode и Vim, позволяя им поддерживать функциональность, подобную IDE.
Выбранные команды:
cmd/goimports
форматирует программу Go, например go fmt
, и дополнительно вставляет операторы импорта для любых пакетов, необходимых файлу после его редактирования.cmd/callgraph
печатает граф вызовов программы Go.cmd/digraph
— утилита для управления ориентированными графами в текстовой записи.cmd/stringer
генерирует объявления (включая метод String
) для типов «enum».cmd/toolstash
— утилита, упрощающая работу с несколькими версиями набора инструментов Go.Эти команды можно получить с помощью такой команды, как
go install golang.org/x/tools/cmd/goimports@latest
Выбранные пакеты:
go/ssa
предоставляет статическое промежуточное представление (IR) формы с одним присвоением (SSA) для программ Go, аналогичное типичному компилятору, для использования инструментами анализа.
go/packages
предоставляет простой интерфейс для загрузки, анализа и проверки типов полной программы Go из исходного кода.
go/analysis
предоставляет основу для модульного статического анализа программ Go.
go/callgraph
предоставляет графы вызовов программ Go, использующих различные алгоритмы с различными компромиссами.
go/ast/inspector
предоставляет оптимизированные средства обхода дерева синтаксического анализа Go для использования в инструментах анализа.
go/cfg
предоставляет простой граф потока управления (CFG) для функции Go.
go/gcexportdata
и go/gccgoexportdata
читают и записывают двоичные файлы, содержащие информацию о типах, используемую стандартным компилятором и компилятором gccgo
.
go/types/objectpath
предоставляет стабильную схему именования для именованных сущностей («объектов») в API go/types
.
Множество других пакетов предоставляют более экзотические функции.
Этот репозиторий использует Gerrit для изменений кода. Чтобы узнать, как отправить изменения, см. https://go.dev/doc/contribute.
Репозиторий git — https://go.googlesource.com/tools.
Основной трекер проблем репозитория инструментов находится по адресу https://go.dev/issues. Укажите в строке темы префикс «x/tools/(ваш подкаталог):», чтобы ее было легко найти.
В этом репозитории используется prettier для форматирования файлов JS и CSS.
Используемая версия prettier
- 1.18.2.
Рекомендуется прогонять весь код JS и CSS перед отправкой изменений. Однако это не является строгим требованием, предъявляемым CI.